/**
* External dependencies
*/
import { Component } from 'react';
import PropTypes from 'prop-types';
import { ProductListContainer } from '@woocommerce/base-components/product-list';
import { InnerBlockLayoutContextProvider } from '@woocommerce/shared-context';
import { gridBlockPreview } from '@woocommerce/resource-previews';
import { getSetting } from '@woocommerce/settings';
/**
* The All Products Block.
*/
class Block extends Component {
static propTypes = {
/**
* The attributes for this block.
*/
attributes: PropTypes.object.isRequired,
};
render() {
const { attributes, urlParameterSuffix } = this.props;
if ( attributes.isPreview ) {
return gridBlockPreview;
}
const hideOutOfStockItems = getSetting( 'hideOutOfStockItems', false );
/**
* Todo classes
*
* wp-block-{$this->block_name},
* wc-block-{$this->block_name},
*/
return (
<InnerBlockLayoutContextProvider
parentName="woocommerce/all-products"
parentClassName="wc-block-grid"
>
<ProductListContainer
attributes={ attributes }
urlParameterSuffix={ urlParameterSuffix }
hideOutOfStockItems={ hideOutOfStockItems }
/>
</InnerBlockLayoutContextProvider>
);
}
}
export default Block;