Skip to content

Commit 8cbb3d4

Browse files
authored
fix: Calendar displays hebrew month name in english locale #1040 (#1062)
1 parent f7ee9fc commit 8cbb3d4

File tree

3 files changed

+34
-24
lines changed

3 files changed

+34
-24
lines changed

src/layout/ThemeContext.tsx

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import { FC, PropsWithChildren, createContext, useContext, useMemo } from 'react'
22
import { ThemeProvider as MuiThemeProvider, createTheme } from '@mui/material/styles'
33
import ScopedCssBaseline from '@mui/material/ScopedCssBaseline'
4+
import { LocalizationProvider } from '@mui/x-date-pickers'
5+
import { AdapterMoment } from '@mui/x-date-pickers/AdapterMoment'
46
import { ConfigProvider, theme } from 'antd'
57
import heIL from 'antd/es/locale/he_IL'
68
import { useTranslation } from 'react-i18next'
@@ -38,6 +40,8 @@ export const ThemeProvider: FC<PropsWithChildren> = ({ children }) => {
3840
// Re-create the theme when the theme changes or the language changes
3941
const theme = useMemo(() => {
4042
const direction = i18n.language === 'he' ? 'rtl' : 'ltr'
43+
document.documentElement.dir = direction
44+
document.documentElement.lang = i18n.language
4145
return createTheme({
4246
direction,
4347
palette: {
@@ -47,22 +51,24 @@ export const ThemeProvider: FC<PropsWithChildren> = ({ children }) => {
4751
}, [isDarkTheme, i18n.language])
4852

4953
return (
50-
<ConfigProvider
51-
direction={i18n.dir()}
52-
locale={heIL}
53-
theme={{
54-
algorithm: isDarkTheme ? darkAlgorithm : defaultAlgorithm,
55-
token: {
56-
colorBgBase: isDarkTheme ? '#1c1d1c' : '#ffffff',
57-
colorTextBase: isDarkTheme ? '#ffffff' : '#000000',
58-
},
59-
}}>
60-
<MuiThemeProvider theme={theme}>
61-
<ScopedCssBaseline enableColorScheme>
62-
<ThemeContext.Provider value={contextValue}>{children}</ThemeContext.Provider>
63-
</ScopedCssBaseline>
64-
</MuiThemeProvider>
65-
</ConfigProvider>
54+
<LocalizationProvider dateAdapter={AdapterMoment} adapterLocale={i18n.language}>
55+
<ConfigProvider
56+
direction={i18n.dir()}
57+
locale={heIL}
58+
theme={{
59+
algorithm: isDarkTheme ? darkAlgorithm : defaultAlgorithm,
60+
token: {
61+
colorBgBase: isDarkTheme ? '#1c1d1c' : '#ffffff',
62+
colorTextBase: isDarkTheme ? '#ffffff' : '#000000',
63+
},
64+
}}>
65+
<MuiThemeProvider theme={theme}>
66+
<ScopedCssBaseline enableColorScheme>
67+
<ThemeContext.Provider value={contextValue}>{children}</ThemeContext.Provider>
68+
</ScopedCssBaseline>
69+
</MuiThemeProvider>
70+
</ConfigProvider>
71+
</LocalizationProvider>
6672
)
6773
}
6874

src/pages/components/DateSelector.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ export function DateSelector({ time, onChange, customLabel, minDate }: DataAndTi
2222

2323
return (
2424
<DatePicker
25-
sx={{ width: '100%' }}
2625
value={time}
2726
onChange={(ts) => onChange(ts)}
2827
format="DD/MM/YYYY"
@@ -31,7 +30,16 @@ export function DateSelector({ time, onChange, customLabel, minDate }: DataAndTi
3130
minDate={minDate}
3231
onError={(err) => setError(err)}
3332
slotProps={{
33+
calendarHeader: {
34+
sx: {
35+
'.MuiPickersCalendarHeader-labelContainer': {
36+
margin: '0',
37+
marginInlineEnd: 'auto',
38+
},
39+
},
40+
},
3441
textField: {
42+
fullWidth: true,
3543
helperText: errorMessageKey && t(errorMessageKey),
3644
},
3745
}}

src/routes/MainRoute.tsx

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ import { CacheProvider } from '@emotion/react'
99
import createCache from '@emotion/cache'
1010
import rtlPlugin from 'stylis-plugin-rtl'
1111
import 'moment/locale/he'
12-
import { AdapterMoment } from '@mui/x-date-pickers/AdapterMoment'
13-
import { LocalizationProvider } from '@mui/x-date-pickers'
1412
import { PageSearchState, SearchContext } from '../model/pageState'
1513
import { ThemeProvider } from '../layout/ThemeContext'
1614
import { PAGES } from '../routes'
@@ -78,11 +76,9 @@ export const MainRoute = () => {
7876
return (
7977
<SearchContext.Provider value={{ search, setSearch: safeSetSearch }}>
8078
<CacheProvider value={cacheRtl}>
81-
<LocalizationProvider dateAdapter={AdapterMoment} adapterLocale="he">
82-
<ThemeProvider>
83-
<MainLayout />
84-
</ThemeProvider>
85-
</LocalizationProvider>
79+
<ThemeProvider>
80+
<MainLayout />
81+
</ThemeProvider>
8682
</CacheProvider>
8783
</SearchContext.Provider>
8884
)

0 commit comments

Comments
 (0)