Server IP : 104.21.14.103 / Your IP : 3.139.81.143 Web Server : LiteSpeed System : Linux business53.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : giankuin ( 1871) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/thread-self/root/home/giankuin/sieuthiweb.com.vn/wp-content/plugins/woocommerce/packages/woocommerce-blocks/assets/js/blocks/cart-checkout/cart/ |
Upload File : |
/** * External dependencies */ import { CART_STORE_KEY as storeKey } from '@woocommerce/block-data'; import { dispatch } from '@wordpress/data'; import { useStoreCart } from '@woocommerce/base-hooks'; import { useEffect, RawHTML } from '@wordpress/element'; import LoadingMask from '@woocommerce/base-components/loading-mask'; import { ValidationContextProvider, CartProvider, } from '@woocommerce/base-context'; import { translateJQueryEventToNative } from '@woocommerce/base-utils'; import withScrollToTop from '@woocommerce/base-hocs/with-scroll-to-top'; /** * Internal dependencies */ import FullCart from './full-cart'; const Block = ( { emptyCart, attributes, scrollToTop } ) => { const { cartItems, cartIsLoading } = useStoreCart(); useEffect( () => { const invalidateCartData = () => { dispatch( storeKey ).invalidateResolutionForStore(); scrollToTop(); }; // Make it so we can read jQuery events triggered by WC Core elements. const removeJQueryAddedToCartEvent = translateJQueryEventToNative( 'added_to_cart', 'wc-blocks_added_to_cart' ); const removeJQueryRemovedFromCartEvent = translateJQueryEventToNative( 'removed_from_cart', 'wc-blocks_removed_from_cart' ); document.body.addEventListener( 'wc-blocks_added_to_cart', invalidateCartData ); document.body.addEventListener( 'wc-blocks_removed_from_cart', invalidateCartData ); return () => { removeJQueryAddedToCartEvent(); removeJQueryRemovedFromCartEvent(); document.body.removeEventListener( 'wc-blocks_added_to_cart', invalidateCartData ); document.body.removeEventListener( 'wc-blocks_removed_from_cart', invalidateCartData ); }; }, [ scrollToTop ] ); return ( <> { ! cartIsLoading && cartItems.length === 0 ? ( <RawHTML>{ emptyCart }</RawHTML> ) : ( <LoadingMask showSpinner={ true } isLoading={ cartIsLoading }> <ValidationContextProvider> <CartProvider> <FullCart attributes={ attributes } /> </CartProvider> </ValidationContextProvider> </LoadingMask> ) } </> ); }; export default withScrollToTop( Block );