/**
* External dependencies
*/
import { __ } from '@wordpress/i18n';
import {
RangeControl,
ToggleControl,
// @ts-expect-error Using experimental features
// eslint-disable-next-line @wordpress/no-unsafe-wp-apis
__experimentalToolsPanelItem as ToolsPanelItem,
} from '@wordpress/components';
/**
* Internal dependencies
*/
import { DisplayLayoutToolbarProps } from '../types';
import { getDefaultDisplayLayout } from '../constants';
const columnsLabel = __( 'Columns', 'woo-gutenberg-products-block' );
const toggleLabel = __( 'Responsive', 'woo-gutenberg-products-block' );
const toggleHelp = __(
'Automatically adjust the number of columns to better fit smaller screens.',
'woo-gutenberg-products-block'
);
const ColumnsControl = ( props: DisplayLayoutToolbarProps ) => {
const { type, columns, shrinkColumns } = props.displayLayout;
const showColumnsControl = type === 'flex';
const defaultLayout = getDefaultDisplayLayout();
const onShrinkColumnsToggleChange = ( value: boolean ) => {
props.setAttributes( {
displayLayout: {
...props.displayLayout,
shrinkColumns: value,
},
} );
};
const onPanelDeselect = () => {
props.setAttributes( {
displayLayout: defaultLayout,
} );
};
const onColumnsChange = ( value: number ) =>
props.setAttributes( {
displayLayout: {
...props.displayLayout,
columns: value,
},
} );
return showColumnsControl ? (
<>
defaultLayout?.columns !== columns }
isShownByDefault
onDeselect={ onPanelDeselect }
>
defaultLayout?.shrinkColumns !== shrinkColumns
}
isShownByDefault
onDeselect={ onPanelDeselect }
>
>
) : null;
};
export default ColumnsControl;