/** * External dependencies */ import { __ } from '@wordpress/i18n'; import classNames from 'classnames'; import { Spinner } from '@woocommerce/blocks-components'; /** * Internal dependencies */ import './style.scss'; interface LoadingMaskProps { children?: React.ReactNode | React.ReactNode[]; className?: string; screenReaderLabel?: string; showSpinner?: boolean; isLoading?: boolean; } // @todo Find a way to block buttons/form components when LoadingMask isLoading const LoadingMask = ( { children, className, screenReaderLabel, showSpinner = false, isLoading = true, }: LoadingMaskProps ): JSX.Element => { return (
{ isLoading && showSpinner && }
{ children }
{ isLoading && ( { screenReaderLabel || __( 'Loading…', 'woo-gutenberg-products-block' ) } ) }
); }; export default LoadingMask;