import { useState, useEffect, memo } from '@wordpress/element'; import classNames from 'classnames'; import { __experimentalToggleGroupControl as WordpressToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, __experimentalToggleGroupControlOptionIcon as ToggleGroupControlIcon, } from '@wordpress/components'; type ToggleProps = { className?: string; options: { value: string; label: string; icon?: React.ReactElement }[]; defaultPressed: string; label?: string | boolean; variant?: 'primary' | 'secondary'; display?: 'icon' | 'label'; size?: 'small' | 'default' | 'compact'; onPressedChange: (value: string) => void; }; const ToggleGroup: React.FC = memo( ({ className, options, defaultPressed, display = 'label', label = false, onPressedChange, }) => { const [isPressed, setIsPressed] = useState(''); const handlePressChange = (value: string) => { onPressedChange(value); }; useEffect(() => { setIsPressed(defaultPressed); }, [defaultPressed]); return (
{options.map((option) => display === 'icon' ? ( handlePressChange(option.value)} /> ) : ( handlePressChange(option.value)} /> ) )}
); } ); export { ToggleGroup };