···01import {i18n} from '@lingui/core'
2import {I18nProvider as DefaultI18nProvider} from '@lingui/react'
03import type React from 'react'
45import {useLocaleLanguage} from './i18n'
60007export default function I18nProvider({children}: {children: React.ReactNode}) {
8- useLocaleLanguage()
9- return <DefaultI18nProvider i18n={i18n}>{children}</DefaultI18nProvider>
0000000000000000010}
···1+import {createContext, useContext} from 'react'
2import {i18n} from '@lingui/core'
3import {I18nProvider as DefaultI18nProvider} from '@lingui/react'
4+import {type Locale} from 'date-fns'
5import type React from 'react'
67import {useLocaleLanguage} from './i18n'
89+const DateLocaleContext = createContext<Locale | undefined>(undefined)
10+DateLocaleContext.displayName = 'DateLocaleContext'
11+12export default function I18nProvider({children}: {children: React.ReactNode}) {
13+ const dateLocale = useLocaleLanguage()
14+ return (
15+ <DateLocaleContext value={dateLocale}>
16+ <DefaultI18nProvider i18n={i18n}>{children}</DefaultI18nProvider>
17+ </DateLocaleContext>
18+ )
19+}
20+21+/**
22+ * Returns a `date-fns` locale corresponding to the current app language
23+ */
24+export function useDateLocale() {
25+ const ctx = useContext(DateLocaleContext)
26+27+ if (!ctx) {
28+ throw new Error('useDateLocale must be used within an I18nProvider')
29+ }
30+31+ return ctx
32}