Doceditor:Hooks:UseI18N: update types
This commit is contained in:
parent
a34d900f1e
commit
5d466eebc4
@ -1,28 +1,37 @@
|
||||
import React from "react";
|
||||
|
||||
import { UseI18NProps } from "@/types";
|
||||
import { getI18NInstance } from "@/utils/i18n";
|
||||
import { i18n } from "i18next";
|
||||
import { TSettings } from "@docspace/shared/api/settings/types";
|
||||
import { TUser } from "@docspace/shared/api/people/types";
|
||||
|
||||
import { getI18NInstance } from "@/utils/i18n";
|
||||
|
||||
interface UseI18NProps {
|
||||
settings?: TSettings;
|
||||
user?: TUser;
|
||||
}
|
||||
|
||||
const useI18N = ({ settings, user }: UseI18NProps) => {
|
||||
const [i18n, setI18N] = React.useState<i18n | null>(null);
|
||||
const [i18n, setI18N] = React.useState<i18n>({} as i18n);
|
||||
|
||||
const isInit = React.useRef(false);
|
||||
|
||||
React.useEffect(() => {
|
||||
if (!settings?.timezone) return;
|
||||
window.timezone = settings.timezone;
|
||||
}, [settings.timezone]);
|
||||
}, [settings?.timezone]);
|
||||
|
||||
React.useEffect(() => {
|
||||
if (isInit.current) return;
|
||||
if (isInit.current || !user?.cultureName || !settings?.culture) return;
|
||||
|
||||
isInit.current = true;
|
||||
|
||||
const instance = getI18NInstance(
|
||||
user.cultureName || "en",
|
||||
settings.culture,
|
||||
);
|
||||
|
||||
setI18N(instance);
|
||||
}, [settings.culture, user.cultureName]);
|
||||
}, [settings?.culture, user?.cultureName]);
|
||||
|
||||
return { i18n };
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user