import { useContext } from '@wordpress/element'; import { DesignContext } from '@components/DesignPanel/DesignStore'; import { ButtonToggle } from '@components/ui/ButtonToggle'; import TextAlignBottomIcon from 'blockbite-icons/dist/TextAlignBottom'; import ExclamationTriangleIcon from 'blockbite-icons/dist/ExclamationTriangle'; import isEmpty from 'lodash/isEmpty'; import { ChapterDivider } from '@components/ui/ChapterDivider'; import { useStore } from 'zustand'; import { StrategiesPanelProps, StrategiesProps, StrategyProp, StrategyOptionProps, } from '@components/DesignPanel/types'; export const StrategiesPanel: React.FC = ({}) => { const store = useContext(DesignContext); const { currentStrategies = [], setCurrentStrategies } = useStore(store); const options = [ { label: 'children', id: 'children', icon: TextAlignBottomIcon, }, { label: 'important', id: 'important', icon: ExclamationTriangleIcon, }, ] as StrategyOptionProps[]; const handleToggle = (id: StrategyProp) => { const newStrategies = currentStrategies.includes(id) ? currentStrategies.filter((strategy: StrategyProp) => strategy !== id) : ([...currentStrategies, id] as StrategiesProps); setCurrentStrategies(newStrategies); }; return (
{options.map((option: any) => { let isPressed = 'off'; if (isEmpty(currentStrategies)) { isPressed = currentStrategies.includes(option.id) ? 'on' : 'off'; } return ( handleToggle(option.id)} > {option.label} ); })}
); }; export default StrategiesPanel;