INNER CODE UNIT · TypeScript
useLanguage
CronusL-1141/AI-company · dashboard/src/i18n/index.ts:49
export function useLanguage() {
const [cachedLang] = useState<Lang>(detectLang);
const queryClient = useQueryClient();
const query = useQuery({
queryKey: languageKey,
queryFn: ({ signal }) => fetchLanguage(undefined, signal),
staleTime: 0,
});
useEffect(() => {
if (query.data) cacheLanguage(query.data.effective);
}, [query.data]);
const mutation = useMutation({
mutationFn: (mode: LanguageMode) => fetchLanguage(mode),
// Cancel an older startup/focus read so it cannot undo a successful save.
onMutate: () => queryClient.cancelQueries({ queryKey: languageKey }),
onSuccess: async (result) => {
await queryClient.cancelQueries({ queryKey: languageKey });
cacheLanguage(result.effective);