/* tslint:disable */ /** * External dependencies */ import classnames from 'classnames'; import { __ } from '@wordpress/i18n'; import { CartCheckoutFeedbackPrompt } from '@woocommerce/editor-components/feedback-prompt'; import { useBlockProps, InnerBlocks, InspectorControls, BlockControls, } from '@wordpress/block-editor'; import { PanelBody, ToggleControl, Notice } from '@wordpress/components'; import { CartCheckoutCompatibilityNotice } from '@woocommerce/editor-components/compatibility-notices'; import { CART_PAGE_ID } from '@woocommerce/block-settings'; import BlockErrorBoundary from '@woocommerce/base-components/block-error-boundary'; import { EditorProvider, useEditorContext, CartProvider, } from '@woocommerce/base-context'; import { createInterpolateElement } from '@wordpress/element'; import { getAdminLink } from '@woocommerce/settings'; import { previewCart } from '@woocommerce/resource-previews'; import { filledCart, removeCart } from '@woocommerce/icons'; import { Icon } from '@wordpress/icons'; /** * Internal dependencies */ import './inner-blocks'; import './editor.scss'; import { addClassToBody, useViewSwitcher, useBlockPropsWithLocking, useForcedLayout, } from '../cart-checkout-shared'; import { CartBlockContext } from './context'; // This is adds a class to body to signal if the selected block is locked addClassToBody(); // Array of allowed block names. const ALLOWED_BLOCKS = [ 'woocommerce/filled-cart-block', 'woocommerce/empty-cart-block', ]; const views = [ { view: 'woocommerce/filled-cart-block', label: __( 'Filled Cart', 'woo-gutenberg-products-block' ), icon: , }, { view: 'woocommerce/empty-cart-block', label: __( 'Empty Cart', 'woo-gutenberg-products-block' ), icon: , }, ]; const BlockSettings = ( { attributes, setAttributes } ) => { const { hasDarkControls } = attributes; const { currentPostId } = useEditorContext(); return ( { currentPostId !== CART_PAGE_ID && ( { createInterpolateElement( __( 'If you would like to use this block as your default cart you must update your page settings in WooCommerce.', 'woo-gutenberg-products-block' ), { a: ( // eslint-disable-next-line jsx-a11y/anchor-has-content ), } ) } ) } setAttributes( { hasDarkControls: ! hasDarkControls, } ) } /> ); }; export const Edit = ( { className, attributes, setAttributes, clientId } ) => { const { hasDarkControls } = attributes; const { currentView, component: ViewSwitcherComponent } = useViewSwitcher( clientId, views ); const defaultTemplate = [ [ 'woocommerce/filled-cart-block', {}, [] ], [ 'woocommerce/empty-cart-block', {}, [] ], ]; const blockProps = useBlockPropsWithLocking( { className: classnames( className, 'wp-block-woocommerce-cart', { 'is-editor-preview': attributes.isPreview, } ), } ); useForcedLayout( { clientId, registeredBlocks: ALLOWED_BLOCKS, defaultTemplate, } ); return (
{ ViewSwitcherComponent }
); }; export const Save = () => { return (
); };