mirror of
https://github.com/ArthurDanjou/ui.git
synced 2026-01-15 04:29:37 +01:00
17 lines
723 B
TypeScript
17 lines
723 B
TypeScript
import { computed, inject, toRef } from 'vue'
|
|
import type { InjectionKey, Ref } from 'vue'
|
|
import { createSharedComposable } from '@vueuse/core'
|
|
import type { Locale, Messages } from '../types/locale'
|
|
import { buildLocaleContext } from '../utils/locale'
|
|
import en from '../locale/en'
|
|
|
|
export const localeContextInjectionKey: InjectionKey<Ref<Locale<unknown> | undefined>> = Symbol.for('nuxt-ui.locale-context')
|
|
|
|
const _useLocale = (localeOverrides?: Ref<Locale<Messages> | undefined>) => {
|
|
const locale = localeOverrides || toRef(inject<Locale<Messages>>(localeContextInjectionKey))
|
|
|
|
return buildLocaleContext<Messages>(computed(() => locale.value || en))
|
|
}
|
|
|
|
export const useLocale = createSharedComposable(_useLocale)
|