mirror of
https://github.com/ArthurDanjou/ui.git
synced 2026-01-28 02:40:35 +01:00
refactor(App): remove default locale handling (#2760)
This commit is contained in:
@@ -3,7 +3,6 @@ import type { ConfigProviderProps, TooltipProviderProps } from 'radix-vue'
|
|||||||
import { localeContextInjectionKey } from '../composables/useLocale'
|
import { localeContextInjectionKey } from '../composables/useLocale'
|
||||||
import { extendDevtoolsMeta } from '../composables/extendDevtoolsMeta'
|
import { extendDevtoolsMeta } from '../composables/extendDevtoolsMeta'
|
||||||
import type { ToasterProps, Locale } from '../types'
|
import type { ToasterProps, Locale } from '../types'
|
||||||
import { en } from '../locale'
|
|
||||||
|
|
||||||
export interface AppProps extends Omit<ConfigProviderProps, 'useId' | 'dir'> {
|
export interface AppProps extends Omit<ConfigProviderProps, 'useId' | 'dir'> {
|
||||||
tooltip?: TooltipProviderProps
|
tooltip?: TooltipProviderProps
|
||||||
@@ -23,7 +22,7 @@ extendDevtoolsMeta({ ignore: true })
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { toRef, useId, provide, computed } from 'vue'
|
import { toRef, useId, provide } from 'vue'
|
||||||
import { ConfigProvider, TooltipProvider, useForwardProps } from 'radix-vue'
|
import { ConfigProvider, TooltipProvider, useForwardProps } from 'radix-vue'
|
||||||
import { reactivePick } from '@vueuse/core'
|
import { reactivePick } from '@vueuse/core'
|
||||||
import UToaster from './Toaster.vue'
|
import UToaster from './Toaster.vue'
|
||||||
@@ -37,12 +36,12 @@ const configProviderProps = useForwardProps(reactivePick(props, 'scrollBody'))
|
|||||||
const tooltipProps = toRef(() => props.tooltip)
|
const tooltipProps = toRef(() => props.tooltip)
|
||||||
const toasterProps = toRef(() => props.toaster)
|
const toasterProps = toRef(() => props.toaster)
|
||||||
|
|
||||||
const locale = computed(() => props.locale || en)
|
const locale = toRef(() => props.locale)
|
||||||
provide(localeContextInjectionKey, locale)
|
provide(localeContextInjectionKey, locale)
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<ConfigProvider :use-id="() => (useId() as string)" :dir="locale.dir" v-bind="configProviderProps">
|
<ConfigProvider :use-id="() => (useId() as string)" :dir="locale?.dir" v-bind="configProviderProps">
|
||||||
<TooltipProvider v-bind="tooltipProps">
|
<TooltipProvider v-bind="tooltipProps">
|
||||||
<UToaster v-if="toaster !== null" v-bind="toasterProps">
|
<UToaster v-if="toaster !== null" v-bind="toasterProps">
|
||||||
<slot />
|
<slot />
|
||||||
|
|||||||
@@ -10,9 +10,6 @@ export const localeContextInjectionKey: InjectionKey<Ref<Locale | undefined>> =
|
|||||||
const _useLocale = (localeOverrides?: Ref<Locale | undefined>) => {
|
const _useLocale = (localeOverrides?: Ref<Locale | undefined>) => {
|
||||||
const locale = localeOverrides || inject(localeContextInjectionKey, ref())!
|
const locale = localeOverrides || inject(localeContextInjectionKey, ref())!
|
||||||
|
|
||||||
/**
|
|
||||||
* If for some reason the developer does not use `UApp`, we get the language back just in case.
|
|
||||||
*/
|
|
||||||
return buildLocaleContext(computed(() => locale.value || en))
|
return buildLocaleContext(computed(() => locale.value || en))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user