import { useState } from 'react'; import type { SectionSettings } from '../api'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter, } from '@/components/ui/dialog'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from '@/components/ui/select'; import { COLOR_OPTIONS, getColorClasses } from '@/lib/colors'; import { cn } from '@/lib/utils'; interface Props { sectionId: string; settings: SectionSettings; open: boolean; onOpenChange: (open: boolean) => void; onSave: (sectionId: string, updated: Partial) => void; } function ColorSwatch({ color }: { color: string }) { const classes = getColorClasses(color); return ( {color} ); } export default function SectionConfigDialog({ sectionId, settings, open, onOpenChange, onSave }: Props) { const [label, setLabel] = useState(settings.label); const [color, setColor] = useState(settings.color); const [cardColor, setCardColor] = useState(settings.cardColor); const [visible, setVisible] = useState(settings.visible); const [order, setOrder] = useState(String(settings.order)); const handleSave = () => { onSave(sectionId, { label, color, cardColor, visible, order: parseInt(order) || 0, }); onOpenChange(false); }; return ( Configure Section
setLabel(e.target.value)} />
setVisible(e.target.checked)} className="h-4 w-4 rounded border-input accent-primary cursor-pointer" />
setOrder(e.target.value)} className="w-20" />
); }