38 lines
864 B
JavaScript
38 lines
864 B
JavaScript
|
/**
|
||
|
* External dependencies
|
||
|
*/
|
||
|
import { useStoreCart } from '@woocommerce/base-hooks';
|
||
|
import { RawHTML } from '@wordpress/element';
|
||
|
import LoadingMask from '@woocommerce/base-components/loading-mask';
|
||
|
import {
|
||
|
ValidationContextProvider,
|
||
|
CartProvider,
|
||
|
} from '@woocommerce/base-context';
|
||
|
|
||
|
/**
|
||
|
* Internal dependencies
|
||
|
*/
|
||
|
import FullCart from './full-cart';
|
||
|
|
||
|
const Block = ( { emptyCart, attributes } ) => {
|
||
|
const { cartItems, cartIsLoading } = useStoreCart();
|
||
|
|
||
|
return (
|
||
|
<>
|
||
|
{ ! cartIsLoading && cartItems.length === 0 ? (
|
||
|
<RawHTML>{ emptyCart }</RawHTML>
|
||
|
) : (
|
||
|
<LoadingMask showSpinner={ true } isLoading={ cartIsLoading }>
|
||
|
<ValidationContextProvider>
|
||
|
<CartProvider>
|
||
|
<FullCart attributes={ attributes } />
|
||
|
</CartProvider>
|
||
|
</ValidationContextProvider>
|
||
|
</LoadingMask>
|
||
|
) }
|
||
|
</>
|
||
|
);
|
||
|
};
|
||
|
|
||
|
export default Block;
|