import { useCallback, useEffect, useState } from 'react' const ENV_DRAFT_KEY = 'ds2api_env_config_draft_v1' export function useAdminConfig({ token, showMessage, t }) { const [config, setConfig] = useState({ keys: [], accounts: [] }) const fetchConfig = useCallback(async () => { if (!token) return try { const res = await fetch('/admin/config', { headers: { 'Authorization': `Bearer ${token}` } }) if (res.ok) { const data = await res.json() if (data?.env_backed) { localStorage.setItem(ENV_DRAFT_KEY, JSON.stringify(data)) } else { localStorage.removeItem(ENV_DRAFT_KEY) } setConfig(data) } } catch (e) { console.error('Failed to fetch config:', e) showMessage('error', t('errors.fetchConfig', { error: e.message })) } }, [showMessage, t, token]) useEffect(() => { if (token) { const rawDraft = localStorage.getItem(ENV_DRAFT_KEY) if (rawDraft) { try { const draft = JSON.parse(rawDraft) if (draft?.env_backed) { setConfig(draft) } } catch (_e) { localStorage.removeItem(ENV_DRAFT_KEY) } } fetchConfig() } }, [fetchConfig, token]) return { config, fetchConfig, } }