diff --git a/packages/nc-gui-v2/composables/useGlobalState.ts b/packages/nc-gui-v2/composables/useGlobalState.ts new file mode 100644 index 0000000000..c971b98881 --- /dev/null +++ b/packages/nc-gui-v2/composables/useGlobalState.ts @@ -0,0 +1,11 @@ +import { createGlobalState, usePreferredLanguages, useStorage } from '@vueuse/core' +import type { GlobalState } from '~/lib/types' + +const storageKey = 'nocodb-gui-v2' + +export const useGlobalState = () => { + const preferredLanguages = $(usePreferredLanguages()) + return createGlobalState(() => + useStorage(storageKey, { token: undefined, user: undefined, lang: preferredLanguages[0] || 'en' }), + ) +} diff --git a/packages/nc-gui-v2/composables/user.ts b/packages/nc-gui-v2/composables/user.ts index 974de96655..5be0542793 100644 --- a/packages/nc-gui-v2/composables/user.ts +++ b/packages/nc-gui-v2/composables/user.ts @@ -1,25 +1,16 @@ -import { store } from 'nuxt3-store' import type { Api } from 'nocodb-sdk' import { useNuxtApp } from '#app' -const user = store({ - name: 'user', - type: 'localstorage', - value: { token: null, user: null }, - reactiveType: 'reactive', - version: '1.0.0', -}) - export const useUser = () => { - const { $api } = useNuxtApp() + const { $api, $state } = useNuxtApp() const getUser = async (...args: Parameters['auth']['me']>) => { - user.user = await $api.auth.me(...args) + $state.user = await $api.auth.me(...args) } - const setToken = (token: string) => { - user.token = token + const setToken = (token?: string) => { + $state.token = token } - return { user, setToken, getUser } + return { user: $state.user, setToken, getUser } } diff --git a/packages/nc-gui-v2/layouts/default.vue b/packages/nc-gui-v2/layouts/default.vue index f798b6a44e..016d27ffba 100644 --- a/packages/nc-gui-v2/layouts/default.vue +++ b/packages/nc-gui-v2/layouts/default.vue @@ -1,9 +1,15 @@