Files
nocodb/packages/nc-gui/plugins/state.ts
Mert E 89f0895de3 fix: experimental frontend optimizations (#8427)
* fix: get rid of barrel files

* chore: get rid of explicit imports

* fix: use explicit import for classes and enums

* fix: use explicit import for enum & class & aliases

* fix: build issues
2024-05-08 15:55:09 +05:30

43 lines
1.1 KiB
TypeScript

import { loadLocaleMessages, setI18nLanguage } from '~/plugins/a.i18n'
/**
* Initialize global state and watches for changes
*
* @example
* ```js
*
*
* const { $state } = useNuxtApp()
*
* console.log($state.lang.value) // 'en'
* ```
*/
const statePlugin = async (_nuxtApp) => {
const state = useGlobal()
const { api } = useApi({ useGlobalInstance: true })
let currentLang = state.lang.value
/** fall back to EN language if the current language cannot be found in Language or LanguagesAlias */
if (![...Object.keys(Language), ...Object.keys(LanguageAlias)].includes(currentLang)) state.lang.value = currentLang = 'en'
/** force load initial locale messages */
await Promise.all([loadLocaleMessages(currentLang), loadLocaleMessages('en')])
/** set i18n locale to stored language */
await setI18nLanguage(currentLang)
try {
state.appInfo.value = await api.utils.appInfo()
} catch (e) {
console.error(e)
}
}
export default defineNuxtPlugin(async function (nuxtApp) {
if (!isEeUI) return await statePlugin(nuxtApp)
})
export { statePlugin }