import { useContext, useEffect } from '@wordpress/element'; import { DesignContext } from '@components/DesignPanel/DesignStore'; import { ToggleGroup } from '@components/ui/ToggleGroup'; import { DropdownPicker } from '@components/ui/DropdownPicker'; import { useStore } from 'zustand'; import DesktopIcon from 'blockbite-icons/dist/Desktop'; import ClipboardIcon from 'blockbite-icons/dist/Clipboard'; import DevicesIcon from 'blockbite-icons/dist/Devices'; import MobileIcon from 'blockbite-icons/dist/Mobile'; import DevicesPortraitIcon from 'blockbite-icons/dist/DevicesPortrait'; import { ResponsivePanelProps } from '@components/DesignPanel/types'; import { useSelect } from '@wordpress/data'; export const ResponsiveOptions = [ { label: 'All', value: 'all', icon: , }, { label: 'Desktop Only', value: 'xl', icon: }, { label: 'Mobile & Tablet Only', value: 'sm', icon: , }, { label: 'Wide Desktop Only', value: '2xl', icon: , }, ]; export const AdvancedResponsiveOptions = [ { label: 'Tablet Only', value: 'md', icon: }, { label: 'Mobile Only', value: 'xs', icon: }, ]; export const ResponsivePanel: React.FC = ({}) => { const store = useContext(DesignContext); const { currentResponsive, setCurrentResponsive } = useStore(store); const device = useSelect((select) => { // @ts-ignore return select('biteStore/editor').getDevice(); }, []); useEffect(() => { setCurrentResponsive(device); }, [device]); return (
{ setCurrentResponsive(value); }} size="default" className="w-[180px]" options={ResponsiveOptions} > { setCurrentResponsive(value); }} />
); }; export default ResponsivePanel;