/** * External dependencies */ import classnames from 'classnames'; import { useBlockProps, InnerBlocks } from '@wordpress/block-editor'; import { Main } from '@woocommerce/base-components/sidebar-layout'; import { innerBlockAreas } from '@woocommerce/blocks-checkout'; import type { TemplateArray } from '@wordpress/blocks'; /** * Internal dependencies */ import { useCheckoutBlockControlsContext, useCheckoutBlockContext, } from '../../context'; import { useForcedLayout, getAllowedBlocks } from '../../../shared'; import './style.scss'; export const Edit = ( { clientId, attributes, }: { clientId: string; attributes: { className?: string; }; } ): JSX.Element => { const blockProps = useBlockProps( { className: classnames( 'wc-block-checkout__main', attributes?.className ), } ); const { showOrderNotes, showPolicyLinks, showReturnToCart, cartPageId, } = useCheckoutBlockContext(); const allowedBlocks = getAllowedBlocks( innerBlockAreas.CHECKOUT_FIELDS ); const { addressFieldControls: Controls, } = useCheckoutBlockControlsContext(); const defaultTemplate = ( [ [ 'woocommerce/checkout-express-payment-block', {}, [] ], [ 'woocommerce/checkout-contact-information-block', {}, [] ], [ 'woocommerce/checkout-shipping-address-block', {}, [] ], [ 'woocommerce/checkout-billing-address-block', {}, [] ], [ 'woocommerce/checkout-shipping-methods-block', {}, [] ], [ 'woocommerce/checkout-payment-block', {}, [] ], showOrderNotes ? [ 'woocommerce/checkout-order-note-block', {}, [] ] : false, showPolicyLinks ? [ 'woocommerce/checkout-terms-block', {}, [] ] : false, [ 'woocommerce/checkout-actions-block', { showReturnToCart, cartPageId, }, [], ], ].filter( Boolean ) as unknown ) as TemplateArray; useForcedLayout( { clientId, registeredBlocks: allowedBlocks, defaultTemplate, } ); return (
); }; export const Save = (): JSX.Element => { return (
); };