Download webui/src/app/useAdminConfig.js from a3216/ds2api: direct link, hf CLI and curl.
- Browser
- Download file 1.57 kB
-
https://huggingface.co/spaces/a3216/ds2api/resolve/ce5a019598af8a3a8fa70d3880098df3e850ecd7/webui/src/app/useAdminConfig.js
- Command line
-
hf download hf://spaces/a3216/ds2api@ce5a019598af8a3a8fa70d3880098df3e850ecd7/webui/src/app/useAdminConfig.js
-
curl -L -o useAdminConfig.js https://huggingface.co/spaces/a3216/ds2api/resolve/ce5a019598af8a3a8fa70d3880098df3e850ecd7/webui/src/app/useAdminConfig.js
1.57 kB
| 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, | |
| } | |
| } | |