Skip to content

Commit 6ccfde5

Browse files
committed
Allow to theme ToggleThemeButton.
1 parent 2a9fd13 commit 6ccfde5

File tree

1 file changed

+34
-2
lines changed

1 file changed

+34
-2
lines changed

packages/ra-ui-materialui/src/button/ToggleThemeButton.tsx

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
import React from 'react';
22
import { Tooltip, IconButton, useMediaQuery } from '@mui/material';
3+
import {
4+
ComponentsOverrides,
5+
styled,
6+
useThemeProps,
7+
} from '@mui/material/styles';
38
import Brightness4Icon from '@mui/icons-material/Brightness4';
49
import Brightness7Icon from '@mui/icons-material/Brightness7';
510
import { useTranslate } from 'ra-core';
@@ -25,6 +30,11 @@ import { useThemesContext, useTheme } from '../theme';
2530
* );
2631
*/
2732
export const ToggleThemeButton = () => {
33+
const props = useThemeProps({
34+
props: {},
35+
name: PREFIX,
36+
});
37+
2838
const translate = useTranslate();
2939
const { darkTheme, defaultTheme } = useThemesContext();
3040
const prefersDarkMode = useMediaQuery('(prefers-color-scheme: dark)', {
@@ -43,13 +53,35 @@ export const ToggleThemeButton = () => {
4353

4454
return (
4555
<Tooltip title={toggleThemeTitle} enterDelay={300}>
46-
<IconButton
56+
<StyledIconButton
4757
color="inherit"
4858
onClick={handleTogglePaletteType}
4959
aria-label={toggleThemeTitle}
60+
{...props}
5061
>
5162
{theme === 'dark' ? <Brightness7Icon /> : <Brightness4Icon />}
52-
</IconButton>
63+
</StyledIconButton>
5364
</Tooltip>
5465
);
5566
};
67+
68+
const PREFIX = 'RaToggleThemeButton';
69+
70+
const StyledIconButton = styled(IconButton, {
71+
name: PREFIX,
72+
overridesResolver: (props, styles) => styles.root,
73+
})({});
74+
75+
declare module '@mui/material/styles' {
76+
interface ComponentNameToClassKey {
77+
[PREFIX]: 'root';
78+
}
79+
80+
interface Components {
81+
[PREFIX]?: {
82+
styleOverrides?: ComponentsOverrides<
83+
Omit<Theme, 'components'>
84+
>[typeof PREFIX];
85+
};
86+
}
87+
}

0 commit comments

Comments
 (0)