MCPcopy Create free account
hub / github.com/ResearAI/AutoFigure / SettingsDialog

Function SettingsDialog

frontend/components/settings-dialog.tsx:49–436  ·  view source on GitHub ↗
({
    open,
    onOpenChange,
    onCloseProtectionChange,
    drawioUi,
    onToggleDrawioUi,
    darkMode,
    onToggleDarkMode,
}: SettingsDialogProps)

Source from the content-addressed store, hash-verified

47}
48
49export function SettingsDialog({
50 open,
51 onOpenChange,
52 onCloseProtectionChange,
53 drawioUi,
54 onToggleDrawioUi,
55 darkMode,
56 onToggleDarkMode,
57}: SettingsDialogProps) {
58 const [accessCode, setAccessCode] = useState("")
59 const [closeProtection, setCloseProtection] = useState(true)
60 const [isVerifying, setIsVerifying] = useState(false)
61 const [error, setError] = useState("")
62 const [accessCodeRequired, setAccessCodeRequired] = useState(
63 () => getStoredAccessCodeRequired() ?? false,
64 )
65 const [provider, setProvider] = useState("")
66 const [baseUrl, setBaseUrl] = useState("")
67 const [apiKey, setApiKey] = useState("")
68 const [modelId, setModelId] = useState("")
69
70 useEffect(() => {
71 // Only fetch if not cached in localStorage
72 if (getStoredAccessCodeRequired() !== null) return
73
74 fetch("/api/config")
75 .then((res) => {
76 if (!res.ok) throw new Error(`HTTP ${res.status}`)
77 return res.json()
78 })
79 .then((data) => {
80 const required = data?.accessCodeRequired === true
81 localStorage.setItem(
82 STORAGE_ACCESS_CODE_REQUIRED_KEY,
83 String(required),
84 )
85 setAccessCodeRequired(required)
86 })
87 .catch(() => {
88 // Don't cache on error - allow retry on next mount
89 setAccessCodeRequired(false)
90 })
91 }, [])
92
93 useEffect(() => {
94 if (open) {
95 const storedCode =
96 localStorage.getItem(STORAGE_ACCESS_CODE_KEY) || ""
97 setAccessCode(storedCode)
98
99 const storedCloseProtection = localStorage.getItem(
100 STORAGE_CLOSE_PROTECTION_KEY,
101 )
102 // Default to true if not set
103 setCloseProtection(storedCloseProtection !== "false")
104
105 // Load AI provider settings
106 setProvider(localStorage.getItem(STORAGE_AI_PROVIDER_KEY) || "")

Callers

nothing calls this directly

Calls 1

Tested by

no test coverage detected