@@ -7,18 +7,20 @@ import composeClasses from '@mui/utils/composeClasses';
7
7
import useSlotProps from '@mui/utils/useSlotProps' ;
8
8
import IconButton from '@mui/material/IconButton' ;
9
9
import { ArrowLeftIcon , ArrowRightIcon } from '../../../icons' ;
10
+ import { PickersArrowSwitcherProps } from './PickersArrowSwitcher.types' ;
10
11
import {
11
- PickersArrowSwitcherOwnerState ,
12
- PickersArrowSwitcherProps ,
13
- } from './PickersArrowSwitcher.types' ;
14
- import { getPickersArrowSwitcherUtilityClass } from './pickersArrowSwitcherClasses' ;
12
+ getPickersArrowSwitcherUtilityClass ,
13
+ PickersArrowSwitcherClasses ,
14
+ } from './pickersArrowSwitcherClasses' ;
15
+ import { usePickerPrivateContext } from '../../hooks/usePickerPrivateContext' ;
16
+ import { PickerOwnerState } from '../../../models' ;
15
17
16
18
const PickersArrowSwitcherRoot = styled ( 'div' , {
17
19
name : 'MuiPickersArrowSwitcher' ,
18
20
slot : 'Root' ,
19
21
overridesResolver : ( props , styles ) => styles . root ,
20
22
} ) < {
21
- ownerState : PickersArrowSwitcherProps ;
23
+ ownerState : PickerOwnerState ;
22
24
} > ( {
23
25
display : 'flex' ,
24
26
} ) ;
@@ -28,7 +30,7 @@ const PickersArrowSwitcherSpacer = styled('div', {
28
30
slot : 'Spacer' ,
29
31
overridesResolver : ( props , styles ) => styles . spacer ,
30
32
} ) < {
31
- ownerState : PickersArrowSwitcherProps ;
33
+ ownerState : PickerOwnerState ;
32
34
} > ( ( { theme } ) => ( {
33
35
width : theme . spacing ( 3 ) ,
34
36
} ) ) ;
@@ -38,7 +40,7 @@ const PickersArrowSwitcherButton = styled(IconButton, {
38
40
slot : 'Button' ,
39
41
overridesResolver : ( props , styles ) => styles . button ,
40
42
} ) < {
41
- ownerState : PickersArrowSwitcherProps ;
43
+ ownerState : PickerOwnerState ;
42
44
} > ( {
43
45
variants : [
44
46
{
@@ -48,8 +50,7 @@ const PickersArrowSwitcherButton = styled(IconButton, {
48
50
] ,
49
51
} ) ;
50
52
51
- const useUtilityClasses = ( ownerState : PickersArrowSwitcherOwnerState ) => {
52
- const { classes } = ownerState ;
53
+ const useUtilityClasses = ( classes : Partial < PickersArrowSwitcherClasses > | undefined ) => {
53
54
const slots = {
54
55
root : [ 'root' ] ,
55
56
spacer : [ 'spacer' ] ,
@@ -84,12 +85,13 @@ export const PickersArrowSwitcher = React.forwardRef(function PickersArrowSwitch
84
85
onGoToPrevious,
85
86
previousLabel,
86
87
labelId,
88
+ classes : classesProp ,
87
89
...other
88
90
} = props ;
89
91
90
- const ownerState = props ;
92
+ const { ownerState } = usePickerPrivateContext ( ) ;
91
93
92
- const classes = useUtilityClasses ( ownerState ) ;
94
+ const classes = useUtilityClasses ( classesProp ) ;
93
95
94
96
const nextProps = {
95
97
isDisabled : isNextDisabled ,
@@ -117,7 +119,7 @@ export const PickersArrowSwitcher = React.forwardRef(function PickersArrowSwitch
117
119
edge : 'end' ,
118
120
onClick : previousProps . goTo ,
119
121
} ,
120
- ownerState : { ...ownerState , hidden : previousProps . isHidden } ,
122
+ ownerState : { ...ownerState , hidden : previousProps . isHidden ?? false } ,
121
123
className : clsx ( classes . button , classes . previousIconButton ) ,
122
124
} ) ;
123
125
@@ -133,7 +135,7 @@ export const PickersArrowSwitcher = React.forwardRef(function PickersArrowSwitch
133
135
edge : 'start' ,
134
136
onClick : nextProps . goTo ,
135
137
} ,
136
- ownerState : { ...ownerState , hidden : nextProps . isHidden } ,
138
+ ownerState : { ...ownerState , hidden : nextProps . isHidden ?? false } ,
137
139
className : clsx ( classes . button , classes . nextIconButton ) ,
138
140
} ) ;
139
141
0 commit comments