import { useState, useCallback } from 'react' import { upsertUserSetting } from '../../services/directiveApi' interface DocumentSettingsProps { isOpen: boolean onClose: () => void enabled: boolean onToggle: (enabled: boolean) => void } export default function DocumentSettings({ isOpen, onClose, enabled, onToggle, }: DocumentSettingsProps) { const [saving, setSaving] = useState(false) const handleToggle = useCallback(async () => { const newValue = !enabled setSaving(true) try { // Update localStorage immediately for instant UI response localStorage.setItem('document_ui_enabled', JSON.stringify(newValue)) onToggle(newValue) // Persist to backend await upsertUserSetting('document_ui_enabled', newValue) } catch (err) { console.error('Failed to save document UI setting:', err) // Revert on failure localStorage.setItem('document_ui_enabled', JSON.stringify(!newValue)) onToggle(!newValue) } finally { setSaving(false) } }, [enabled, onToggle]) if (!isOpen) return null return (
e.stopPropagation()}>

Document UI Settings

Replace the directive management interface with an interactive document editor. This is a proof of concept.
) }