mirror of https://github.com/nocodb/nocodb
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
806 B
39 lines
806 B
import { defineNuxtPlugin } from '#app' |
|
import { useDark, useGlobal, watch } from '#imports' |
|
|
|
/** |
|
* Initialize global state and watches for changes |
|
* |
|
* @example |
|
* ```js |
|
* import { useNuxtApp } from '#app' |
|
* |
|
* const { $state } = useNuxtApp() |
|
* |
|
* console.log($state.lang.value) // 'en' |
|
* ``` |
|
*/ |
|
export default defineNuxtPlugin(async (nuxtApp) => { |
|
const state = useGlobal() |
|
const { $api } = useNuxtApp() |
|
|
|
const darkMode = useDark() |
|
|
|
/** set i18n locale to stored language */ |
|
nuxtApp.vueApp.i18n.locale.value = state.lang.value |
|
|
|
try { |
|
state.appInfo = await $api.utils.appInfo() |
|
} catch (e) { |
|
console.error(e) |
|
} |
|
|
|
/** set current dark mode from storage */ |
|
watch( |
|
state.darkMode, |
|
(newMode) => { |
|
darkMode.value = newMode |
|
}, |
|
{ immediate: true }, |
|
) |
|
})
|
|
|