import { memo, useMemo } from 'react' import { Button } from '@/components/ui/button' import { Shuffle } from 'lucide-react' interface Preset { label: string [key: string]: any } interface PresetSelectorProps { presets: readonly T[] onSelect: (preset: T) => void } const PresetSelectorInner = ({ presets, onSelect }: PresetSelectorProps) => { const presetButtons = useMemo(() => { return presets.map((preset, index) => ( )) }, [presets, onSelect]) const handleRandomSelect = () => { const randomIndex = Math.floor(Math.random() * presets.length) onSelect(presets[randomIndex]) } return (
{presetButtons}
) } export const PresetSelector = memo(PresetSelectorInner) as typeof PresetSelectorInner