Doceditor:Hooks:UseI18N: update types

This commit is contained in:
Timofey Boyko 2024-02-16 18:15:44 +03:00
parent a34d900f1e
commit 5d466eebc4

View File

@ -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 };
};