import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/Popover' import { Checkbox } from '@/components/ui/Checkbox' import Button from '@/components/ui/Button' import { useState, useCallback } from 'react' import { controlButtonVariant } from '@/lib/constants' import { useSettingsStore } from '@/lib/settings' import { SettingsIcon } from 'lucide-react' /** * Component that displays a checkbox with a label. */ const LabeledCheckBox = ({ checked, onCheckedChange, label }: { checked: boolean onCheckedChange: () => void label: string }) => { return (
) } /** * Component that displays a popover with settings options. */ export default function Settings() { const [opened, setOpened] = useState(false) const enableEdgeEvents = useSettingsStore.use.enableEdgeEvents() const enableNodeDrag = useSettingsStore.use.enableNodeDrag() const enableHideUnselectedEdges = useSettingsStore.use.enableHideUnselectedEdges() const showEdgeLabel = useSettingsStore.use.showEdgeLabel() const setEnableNodeDrag = useCallback( () => useSettingsStore.setState((pre) => ({ enableNodeDrag: !pre.enableNodeDrag })), [] ) const setEnableEdgeEvents = useCallback( () => useSettingsStore.setState((pre) => ({ enableEdgeEvents: !pre.enableEdgeEvents })), [] ) const setEnableHideUnselectedEdges = useCallback( () => useSettingsStore.setState((pre) => ({ enableHideUnselectedEdges: !pre.enableHideUnselectedEdges })), [] ) const setShowEdgeLabel = useCallback( () => useSettingsStore.setState((pre) => ({ showEdgeLabel: !pre.showEdgeLabel })), [] ) return (
) }