@@ -6,15 +6,17 @@ import merge from 'deepmerge';
6
6
import React , { ReactNode , useMemo } from 'react' ;
7
7
import { DndProvider } from 'react-dnd' ;
8
8
import { HTML5Backend } from 'react-dnd-html5-backend' ;
9
+ import { IntlProvider } from 'react-intl' ;
9
10
import { ThemeProvider } from 'react-jss' ;
10
- import { Provider } from 'react-redux' ;
11
+ import { Provider as ReduxProvider } from 'react-redux' ;
11
12
import shortid from 'shortid' ;
12
13
13
14
import { useChonkyStore } from '../../redux/store' ;
14
15
import { FileBrowserHandle , FileBrowserProps } from '../../types/file-browser.types' ;
15
16
import { defaultConfig } from '../../util/default-config' ;
16
17
import { getValueOrFallback } from '../../util/helpers' ;
17
18
import { useStaticValue } from '../../util/hooks-helpers' ;
19
+ import { ChonkyFormattersContext , defaultFormatters } from '../../util/i18n' ;
18
20
import { ChonkyIconContext } from '../../util/icon-helper' ;
19
21
import {
20
22
darkThemeOverride ,
@@ -53,6 +55,10 @@ export const FileBrowser = React.forwardRef<
53
55
defaultConfig . darkMode ,
54
56
'boolean'
55
57
) ;
58
+ const i18n = getValueOrFallback ( props . i18n , defaultConfig . i18n ) ;
59
+ const formatters = useMemo ( ( ) => ( { ...defaultFormatters , ...i18n ?. formatters } ) , [
60
+ i18n ,
61
+ ] ) ;
56
62
57
63
const chonkyInstanceId = useStaticValue ( ( ) => instanceId ?? shortid . generate ( ) ) ;
58
64
const store = useChonkyStore ( chonkyInstanceId ) ;
@@ -79,27 +85,31 @@ export const FileBrowser = React.forwardRef<
79
85
) ;
80
86
81
87
return (
82
- < Provider store = { store } >
83
- < ThemeProvider theme = { theme } >
84
- < MuiThemeProvider theme = { theme } >
85
- < ChonkyIconContext . Provider
86
- value = {
87
- iconComponent ??
88
- defaultConfig . iconComponent ??
89
- ChonkyIconPlaceholder
90
- }
91
- >
92
- { disableDragAndDrop || disableDragAndDropProvider ? (
93
- chonkyComps
94
- ) : (
95
- < DndProvider backend = { HTML5Backend } >
96
- { chonkyComps }
97
- </ DndProvider >
98
- ) }
99
- </ ChonkyIconContext . Provider >
100
- </ MuiThemeProvider >
101
- </ ThemeProvider >
102
- </ Provider >
88
+ < IntlProvider locale = "en" defaultLocale = "en" { ...i18n } >
89
+ < ChonkyFormattersContext . Provider value = { formatters } >
90
+ < ReduxProvider store = { store } >
91
+ < ThemeProvider theme = { theme } >
92
+ < MuiThemeProvider theme = { theme } >
93
+ < ChonkyIconContext . Provider
94
+ value = {
95
+ iconComponent ??
96
+ defaultConfig . iconComponent ??
97
+ ChonkyIconPlaceholder
98
+ }
99
+ >
100
+ { disableDragAndDrop || disableDragAndDropProvider ? (
101
+ chonkyComps
102
+ ) : (
103
+ < DndProvider backend = { HTML5Backend } >
104
+ { chonkyComps }
105
+ </ DndProvider >
106
+ ) }
107
+ </ ChonkyIconContext . Provider >
108
+ </ MuiThemeProvider >
109
+ </ ThemeProvider >
110
+ </ ReduxProvider >
111
+ </ ChonkyFormattersContext . Provider >
112
+ </ IntlProvider >
103
113
) ;
104
114
} ) ;
105
115
FileBrowser . displayName = 'FileBrowser' ;
0 commit comments