UNPKG

fastapi-rtk

Version:

A React component library for FastAPI in combination with FastAPI React Toolkit backend, built with Mantine, JsonForms, and Zustand.

45 lines (44 loc) 2.27 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const constants = require("fastapi-rtk/constants"); const utils = require("fastapi-rtk/utils"); const hooks = require("@mantine/hooks"); const React = require("react"); const useTranslation = require("../../../../../.external/cjs/react-i18next@15.7.3_i18next@25.5.2_react-dom@18.3.1_react@18.3.1_typescript@5.9.2/react-i18next/dist/es/useTranslation.cjs"); const useProvideLang = (baseMRTLocalization = {}) => { const translation = useTranslation.useTranslation(); const [localStorageLanguage, setLocalStorageLanguage] = hooks.useLocalStorage(constants.LANG_LOCAL_STORAGE_PROPS); const setLanguage = React.useCallback( (lng) => { translation.i18n.changeLanguage(lng).then(() => setLocalStorageLanguage(lng)); }, [setLocalStorageLanguage, translation.i18n] ); const [MRTLocalization, setMRTLocalization] = hooks.useSetState(baseMRTLocalization); React.useEffect(() => { if (!translation.i18n.language) { return; } if (!(MRTLocalization == null ? void 0 : MRTLocalization[translation.i18n.language])) { if (!constants.MRT_LOCALIZATION_IMPORT_MAP[translation.i18n.language]) { utils.FastAPIRTKLogger.error( `No localization found for '${translation.i18n.language}', consider adding it yourself using 'MRTLocalization' prop within the 'langProps' in 'Provider' component. See here for the keys: https://github.com/KevinVandy/mantine-react-table/blob/v2/packages/mantine-react-table/src/locales/en.ts` ); return; } constants.MRT_LOCALIZATION_IMPORT_MAP[translation.i18n.language]().then((languagePack) => setMRTLocalization({ [translation.i18n.language]: languagePack })).catch(() => utils.FastAPIRTKLogger.error(`Failed to load localization for ${translation.i18n.language}`)); } }, [translation.i18n.language]); return { currentLanguage: translation.i18n.language, setLanguage, translation, useTranslation: useTranslation.useTranslation, currentMRTLocalization: MRTLocalization[translation.i18n.language], MRTLocalization, setMRTLocalization, localStorageLanguage, setLocalStorageLanguage }; }; exports.useProvideLang = useProvideLang;