INNER CODE UNIT · TypeScript
fetchLanguage
CronusL-1141/AI-company · dashboard/src/i18n/index.ts:34
async function fetchLanguage(mode?: LanguageMode, signal?: AbortSignal): Promise<LanguageSetting> {
const result = await apiFetch<LanguageSetting>(languagePath, mode === undefined ? { signal } : {
method: 'PUT', body: JSON.stringify({ mode }),
});
if (!result || !['follow', 'zh', 'en'].includes(result.mode)
|| !['zh', 'en'].includes(result.effective)) {
throw new Error('Invalid language setting response');
}
return result;
}
function cacheLanguage(lang: Lang) {
try { localStorage.setItem('lang', lang); } catch { /* Cache is optional. */ }
}
export function useLanguage() {
const [cachedLang] = useState<Lang>(detectLang);
const queryClient = useQueryClient();