import { useState } from '@wordpress/element'; import { useSelect } from '@wordpress/data'; import { ItemProps } from '@components/DesignPanel/types'; import { ButtonToggleGroup } from '@components/ui/ButtonToggle'; import { Button, ButtonGroup } from '@wordpress/components'; const PresetButtons = (props: { presets: any[]; emitPreset: (design: any) => void; }) => { return ( {props.presets.map((p: any, i: number) => ( ))} ); }; export const StyleInspectorPresets = (props: any) => { const { blockname, setAttributes } = props; const [platform, setPlatform] = useState('site'); const presets = useSelect( (select) => { // @ts-ignore const results = select('biteStore/presets').getFiltered( platform, blockname ); return results.filter((item: ItemProps) => item.blockname === blockname); }, [platform, blockname] ); const stylePresets = presets.filter( (item: ItemProps) => item.category === 'style' ); const layoutPresets = presets.filter( (item: ItemProps) => item.category === 'layout' ); const mediaPresets = presets.filter( (item: ItemProps) => item.category === 'media' ); const hasMultiplePresetTypes = [ stylePresets.length > 0, layoutPresets.length > 0, mediaPresets.length > 0, ].filter((entry) => entry).length > 1; return (
{ setPlatform(value); }} className="my-4" size="default" options={['site', 'blockbite'].map((option: string) => ({ value: option, icon: null, label: option, }))} > {presets.length ? ( ) : (
No {platform} presets for this block.
)}
); };