diff --git a/packages/material-ui-lab/src/DatePicker/DatePicker.tsx b/packages/material-ui-lab/src/DatePicker/DatePicker.tsx index 8b36e5420aeb23..160ec8aa58e82e 100644 --- a/packages/material-ui-lab/src/DatePicker/DatePicker.tsx +++ b/packages/material-ui-lab/src/DatePicker/DatePicker.tsx @@ -91,15 +91,9 @@ export type DatePickerGenericComponent = (( props: BaseDatePickerProps & SharedPickerProps, ) => JSX.Element) & { propTypes?: any }; -type T = BaseDatePickerProps; -const Wrapper = ResponsiveWrapper; -type TWrapper = typeof Wrapper; const name = 'MuiDatePicker'; const { DefaultToolbarComponent, useInterceptProps, useValidation } = datePickerConfig; -const KeyboardDateInputComponent = KeyboardDateInput; -const PureDateInputComponent = PureDateInput; - interface WithWrapperProps { children: React.ReactNode; DateInputProps: DateInputPropsLike; @@ -134,7 +128,7 @@ function DatePickerWrapper( ...other } = props; - const TypedWrapper = Wrapper as SomeWrapper; + const TypedWrapper = ResponsiveWrapper as SomeWrapper; return ( ( - __props: T & PublicWrapperProps & AllSharedPickerProps, TDate>, + __props: BaseDatePickerProps & + PublicWrapperProps & + AllSharedPickerProps, TDate>, ref: React.Ref, ) { - const allProps = useInterceptProps(__props) as AllPickerProps; + const allProps = useInterceptProps(__props) as AllPickerProps< + BaseDatePickerProps, + typeof ResponsiveWrapper + >; // This is technically unsound if the type parameters appear in optional props. // Optional props can be filled by `useThemeProps` with types that don't match the type parameters. - const props: AllPickerProps = useThemeProps({ props: allProps, name }); + const props: AllPickerProps< + BaseDatePickerProps, + typeof ResponsiveWrapper + > = useThemeProps({ + props: allProps, + name, + }); const validationError = useValidation(props.value, props) !== null; const { pickerProps, inputProps, wrapperProps } = usePickerState, TDate>( @@ -196,7 +201,7 @@ const DatePicker = React.forwardRef(function DatePicker( /> ); -}) as DatePickerGenericComponent; +}) as DatePickerGenericComponent; DatePicker.propTypes /* remove-proptypes */ = { // ----------------------------- Warning -------------------------------- diff --git a/packages/material-ui-lab/src/DateTimePicker/DateTimePicker.tsx b/packages/material-ui-lab/src/DateTimePicker/DateTimePicker.tsx index 85d807eb2ba3df..63f192bb69dad1 100644 --- a/packages/material-ui-lab/src/DateTimePicker/DateTimePicker.tsx +++ b/packages/material-ui-lab/src/DateTimePicker/DateTimePicker.tsx @@ -154,15 +154,8 @@ export type DateTimePickerGenericComponent = ( & SharedPickerProps, ) => JSX.Element) & { propTypes?: unknown }; -type T = BaseDateTimePickerProps; -const Wrapper = ResponsiveWrapper; -type TWrapper = typeof Wrapper; -const name = 'MuiDateTimePicker'; const { DefaultToolbarComponent } = dateTimePickerConfig; -const KeyboardDateInputComponent = KeyboardDateInput; -const PureDateInputComponent = PureDateInput; - interface WithWrapperProps { children: React.ReactNode; DateInputProps: DateInputPropsLike; @@ -197,7 +190,7 @@ function DateTimePickerWrapper( ...other } = props; - const TypedWrapper = Wrapper as SomeWrapper; + const TypedWrapper = ResponsiveWrapper as SomeWrapper; return ( ( - __props: T & PublicWrapperProps & AllSharedPickerProps, TDate>, + __props: BaseDateTimePickerProps & + PublicWrapperProps & + AllSharedPickerProps, TDate>, ref: React.Ref, ) { - const allProps = useInterceptProps(__props) as AllPickerProps; + const allProps = useInterceptProps(__props) as AllPickerProps< + BaseDateTimePickerProps, + typeof ResponsiveWrapper + >; // This is technically unsound if the type parameters appear in optional props. // Optional props can be filled by `useThemeProps` with types that don't match the type parameters. - const props: AllPickerProps = useThemeProps({ props: allProps, name }); + const props: AllPickerProps< + BaseDateTimePickerProps, + typeof ResponsiveWrapper + > = useThemeProps({ + props: allProps, + name: 'MuiDateTimePicker', + }); const validationError = useValidation(props.value, props) !== null; const { pickerProps, inputProps, wrapperProps } = usePickerState, TDate>( diff --git a/packages/material-ui-lab/src/DesktopDatePicker/DesktopDatePicker.tsx b/packages/material-ui-lab/src/DesktopDatePicker/DesktopDatePicker.tsx index 9b3b379aa4ab84..932a90a3b718f1 100644 --- a/packages/material-ui-lab/src/DesktopDatePicker/DesktopDatePicker.tsx +++ b/packages/material-ui-lab/src/DesktopDatePicker/DesktopDatePicker.tsx @@ -37,15 +37,8 @@ const valueManager: PickerStateValueManager = { areValuesEqual: (utils: MuiPickersAdapter, a: unknown, b: unknown) => utils.isEqual(a, b), }; -const Wrapper = DesktopWrapper; -type TWrapper = typeof Wrapper; -const name = 'MuiDesktopDatePicker'; -type T = BaseDatePickerProps; const { DefaultToolbarComponent, useInterceptProps, useValidation } = datePickerConfig; -const KeyboardDateInputComponent = KeyboardDateInput; -const PureDateInputComponent = PureDateInput; - interface WithWrapperProps { children: React.ReactNode; DateInputProps: DateInputPropsLike; @@ -80,7 +73,7 @@ function DesktopDatePickerWrapper( ...other } = props; - const TypedWrapper = Wrapper as SomeWrapper; + const TypedWrapper = DesktopWrapper as SomeWrapper; return ( ( - __props: T & AllSharedPickerProps, TDate> & PublicWrapperProps, + __props: BaseDatePickerProps & + AllSharedPickerProps, TDate> & + PublicWrapperProps, ref: React.Ref, ) { - const allProps = useInterceptProps(__props) as AllPickerProps; + const allProps = useInterceptProps(__props) as AllPickerProps< + BaseDatePickerProps, + typeof DesktopWrapper + >; // This is technically unsound if the type parameters appear in optional props. // Optional props can be filled by `useThemeProps` with types that don't match the type parameters. - const props: AllPickerProps = useThemeProps({ props: allProps, name }); + const props: AllPickerProps, typeof DesktopWrapper> = useThemeProps({ + props: allProps, + name: 'MuiDesktopDatePicker', + }); const validationError = useValidation(props.value, props) !== null; const { pickerProps, inputProps, wrapperProps } = usePickerState, TDate>( @@ -141,7 +142,7 @@ const DesktopDatePicker = React.forwardRef(function DesktopDatePicker( /> ); -}) as DatePickerGenericComponent; +}) as DatePickerGenericComponent; DesktopDatePicker.propTypes /* remove-proptypes */ = { // ----------------------------- Warning -------------------------------- diff --git a/packages/material-ui-lab/src/DesktopDateTimePicker/DesktopDateTimePicker.tsx b/packages/material-ui-lab/src/DesktopDateTimePicker/DesktopDateTimePicker.tsx index 7a9ff7e776273b..c0b316f4196838 100644 --- a/packages/material-ui-lab/src/DesktopDateTimePicker/DesktopDateTimePicker.tsx +++ b/packages/material-ui-lab/src/DesktopDateTimePicker/DesktopDateTimePicker.tsx @@ -37,9 +37,6 @@ const valueManager: PickerStateValueManager = { areValuesEqual: (utils: MuiPickersAdapter, a: unknown, b: unknown) => utils.isEqual(a, b), }; -type T = BaseDateTimePickerProps; -const Wrapper = DesktopWrapper; -type TWrapper = typeof DesktopWrapper; const name = 'MuiDesktopDateTimePicker'; const { DefaultToolbarComponent, useInterceptProps, useValidation } = dateTimePickerConfig; @@ -80,7 +77,7 @@ function DesktopDateTimePickerWrapper( ...other } = props; - const TypedWrapper = Wrapper as SomeWrapper; + const TypedWrapper = DesktopWrapper as SomeWrapper; return ( ( - __props: T & PublicWrapperProps & AllSharedPickerProps, TDate>, + __props: BaseDateTimePickerProps & + PublicWrapperProps & + AllSharedPickerProps, TDate>, ref: React.Ref, ) { - const allProps = useInterceptProps(__props) as AllPickerProps; + const allProps = useInterceptProps(__props) as AllPickerProps< + BaseDateTimePickerProps, + typeof DesktopWrapper + >; // This is technically unsound if the type parameters appear in optional props. // Optional props can be filled by `useThemeProps` with types that don't match the type parameters. - const props: AllPickerProps = useThemeProps({ props: allProps, name }); + const props: AllPickerProps< + BaseDateTimePickerProps, + typeof DesktopWrapper + > = useThemeProps({ + props: allProps, + name, + }); const validationError = useValidation(props.value, props) !== null; const { pickerProps, inputProps, wrapperProps } = usePickerState, TDate>( diff --git a/packages/material-ui-lab/src/DesktopTimePicker/DesktopTimePicker.tsx b/packages/material-ui-lab/src/DesktopTimePicker/DesktopTimePicker.tsx index d92e796258b0de..d11e840a64090d 100644 --- a/packages/material-ui-lab/src/DesktopTimePicker/DesktopTimePicker.tsx +++ b/packages/material-ui-lab/src/DesktopTimePicker/DesktopTimePicker.tsx @@ -37,14 +37,8 @@ const valueManager: PickerStateValueManager = { areValuesEqual: (utils: MuiPickersAdapter, a: unknown, b: unknown) => utils.isEqual(a, b), }; -type T = BaseTimePickerProps; -const Wrapper = DesktopWrapper; -type TWrapper = typeof DesktopWrapper; -const name = 'MuiDesktopTimePicker'; const { DefaultToolbarComponent, useInterceptProps, useValidation } = timePickerConfig; -const KeyboardDateInputComponent = KeyboardDateInput; -const PureDateInputComponent = PureDateInput; interface WithWrapperProps { children: React.ReactNode; DateInputProps: DateInputPropsLike; @@ -79,7 +73,7 @@ function DesktopTimePickerWrapper( ...other } = props; - const TypedWrapper = Wrapper as SomeWrapper; + const TypedWrapper = DesktopWrapper as SomeWrapper; return ( ( - __props: T & PublicWrapperProps & AllSharedPickerProps, TDate>, + __props: BaseTimePickerProps & + PublicWrapperProps & + AllSharedPickerProps, TDate>, ref: React.Ref, ) { - const allProps = useInterceptProps(__props) as AllPickerProps; + const allProps = useInterceptProps(__props) as AllPickerProps< + BaseTimePickerProps, + typeof DesktopWrapper + >; // This is technically unsound if the type parameters appear in optional props. // Optional props can be filled by `useThemeProps` with types that don't match the type parameters. - const props: AllPickerProps = useThemeProps({ props: allProps, name }); + const props: AllPickerProps = useThemeProps({ + props: allProps, + name: 'MuiDesktopTimePicker', + }); const validationError = useValidation(props.value, props) !== null; const { pickerProps, inputProps, wrapperProps } = usePickerState, TDate>( @@ -141,7 +143,7 @@ const DesktopTimePicker = React.forwardRef(function DesktopTimePicker( /> ); -}) as TimePickerGenericComponent; +}) as TimePickerGenericComponent; DesktopTimePicker.propTypes /* remove-proptypes */ = { // ----------------------------- Warning -------------------------------- diff --git a/packages/material-ui-lab/src/MobileDatePicker/MobileDatePicker.tsx b/packages/material-ui-lab/src/MobileDatePicker/MobileDatePicker.tsx index 8bc951027a06e5..707fee7dbe1b37 100644 --- a/packages/material-ui-lab/src/MobileDatePicker/MobileDatePicker.tsx +++ b/packages/material-ui-lab/src/MobileDatePicker/MobileDatePicker.tsx @@ -37,13 +37,7 @@ const valueManager: PickerStateValueManager = { areValuesEqual: (utils: MuiPickersAdapter, a: unknown, b: unknown) => utils.isEqual(a, b), }; -const Wrapper = MobileWrapper; -type TWrapper = typeof Wrapper; -const name = 'MuiMobileDatePicker'; -type T = BaseDatePickerProps; const { DefaultToolbarComponent, useInterceptProps, useValidation } = datePickerConfig; -const KeyboardDateInputComponent = KeyboardDateInput; -const PureDateInputComponent = PureDateInput; interface WithWrapperProps { children: React.ReactNode; @@ -79,7 +73,7 @@ function MobileDatePickerWrapper( ...other } = props; - const TypedWrapper = Wrapper as SomeWrapper; + const TypedWrapper = MobileWrapper as SomeWrapper; return ( ( - __props: T & PublicWrapperProps & AllSharedPickerProps, TDate>, + __props: BaseDatePickerProps & + PublicWrapperProps & + AllSharedPickerProps, TDate>, ref: React.Ref, ) { - const allProps = useInterceptProps(__props) as AllPickerProps; + const allProps = useInterceptProps(__props) as AllPickerProps< + BaseDatePickerProps, + typeof MobileWrapper + >; // This is technically unsound if the type parameters appear in optional props. // Optional props can be filled by `useThemeProps` with types that don't match the type parameters. - const props: AllPickerProps = useThemeProps({ props: allProps, name }); + const props: AllPickerProps, typeof MobileWrapper> = useThemeProps({ + props: allProps, + name: 'MuiMobileDatePicker', + }); const validationError = useValidation(props.value, props) !== null; const { pickerProps, inputProps, wrapperProps } = usePickerState, TDate>( @@ -141,7 +143,7 @@ const MobileDatePicker = React.forwardRef(function MobileDatePicker( /> ); -}) as DatePickerGenericComponent; +}) as DatePickerGenericComponent; MobileDatePicker.propTypes /* remove-proptypes */ = { // ----------------------------- Warning -------------------------------- diff --git a/packages/material-ui-lab/src/MobileDateTimePicker/MobileDateTimePicker.tsx b/packages/material-ui-lab/src/MobileDateTimePicker/MobileDateTimePicker.tsx index 180ed7134adc28..bca260e0329b23 100644 --- a/packages/material-ui-lab/src/MobileDateTimePicker/MobileDateTimePicker.tsx +++ b/packages/material-ui-lab/src/MobileDateTimePicker/MobileDateTimePicker.tsx @@ -37,15 +37,8 @@ const valueManager: PickerStateValueManager = { areValuesEqual: (utils: MuiPickersAdapter, a: unknown, b: unknown) => utils.isEqual(a, b), }; -type T = BaseDateTimePickerProps; -const Wrapper = MobileWrapper; -type TWrapper = typeof MobileWrapper; -const name = 'MuiMobileDateTimePicker'; const { DefaultToolbarComponent, useInterceptProps, useValidation } = dateTimePickerConfig; -const KeyboardDateInputComponent = KeyboardDateInput; -const PureDateInputComponent = PureDateInput; - interface WithWrapperProps { children: React.ReactNode; DateInputProps: DateInputPropsLike; @@ -80,7 +73,7 @@ function MobileDateTimePickerWrapper( ...other } = props; - const TypedWrapper = Wrapper as SomeWrapper; + const TypedWrapper = MobileWrapper as SomeWrapper; return ( ( - __props: T & PublicWrapperProps & AllSharedPickerProps, TDate>, + __props: BaseDateTimePickerProps & + PublicWrapperProps & + AllSharedPickerProps, TDate>, ref: React.Ref, ) { - const allProps = useInterceptProps(__props) as AllPickerProps; + const allProps = useInterceptProps(__props) as AllPickerProps< + BaseDateTimePickerProps, + typeof MobileWrapper + >; // This is technically unsound if the type parameters appear in optional props. // Optional props can be filled by `useThemeProps` with types that don't match the type parameters. - const props: AllPickerProps = useThemeProps({ props: allProps, name }); + const props: AllPickerProps< + BaseDateTimePickerProps, + typeof MobileWrapper + > = useThemeProps({ + props: allProps, + name: 'MuiMobileDateTimePicker', + }); const validationError = useValidation(props.value, props) !== null; const { pickerProps, inputProps, wrapperProps } = usePickerState, TDate>( @@ -146,7 +150,7 @@ const MobileDateTimePicker = React.forwardRef(function MobileDateTimePicker ); -}) as DateTimePickerGenericComponent; +}) as DateTimePickerGenericComponent; MobileDateTimePicker.propTypes /* remove-proptypes */ = { // ----------------------------- Warning -------------------------------- diff --git a/packages/material-ui-lab/src/MobileTimePicker/MobileTimePicker.tsx b/packages/material-ui-lab/src/MobileTimePicker/MobileTimePicker.tsx index fd2f005bcea207..67fad9531456ef 100644 --- a/packages/material-ui-lab/src/MobileTimePicker/MobileTimePicker.tsx +++ b/packages/material-ui-lab/src/MobileTimePicker/MobileTimePicker.tsx @@ -37,15 +37,8 @@ const valueManager: PickerStateValueManager = { areValuesEqual: (utils: MuiPickersAdapter, a: unknown, b: unknown) => utils.isEqual(a, b), }; -type T = BaseTimePickerProps; -const Wrapper = MobileWrapper; -type TWrapper = typeof Wrapper; -const name = 'MuiMobileTimePicker'; const { DefaultToolbarComponent, useInterceptProps, useValidation } = timePickerConfig; -const KeyboardDateInputComponent = KeyboardDateInput; -const PureDateInputComponent = PureDateInput; - interface WithWrapperProps { children: React.ReactNode; DateInputProps: DateInputPropsLike; @@ -80,7 +73,7 @@ function MobileTimePickerWrapper( ...other } = props; - const TypedWrapper = Wrapper as SomeWrapper; + const TypedWrapper = MobileWrapper as SomeWrapper; return ( ( - __props: T & PublicWrapperProps & AllSharedPickerProps, TDate>, + __props: BaseTimePickerProps & + PublicWrapperProps & + AllSharedPickerProps, TDate>, ref: React.Ref, ) { - const allProps = useInterceptProps(__props) as AllPickerProps; + const allProps = useInterceptProps(__props) as AllPickerProps< + BaseTimePickerProps, + typeof MobileWrapper + >; // This is technically unsound if the type parameters appear in optional props. // Optional props can be filled by `useThemeProps` with types that don't match the type parameters. - const props: AllPickerProps = useThemeProps({ props: allProps, name }); + const props: AllPickerProps = useThemeProps({ + props: allProps, + name: 'MuiMobileTimePicker', + }); const validationError = useValidation(props.value, props) !== null; const { pickerProps, inputProps, wrapperProps } = usePickerState, TDate>( @@ -142,7 +143,7 @@ const MobileTimePicker = React.forwardRef(function MobileTimePicker( /> ); -}) as TimePickerGenericComponent; +}) as TimePickerGenericComponent; MobileTimePicker.propTypes /* remove-proptypes */ = { // ----------------------------- Warning -------------------------------- diff --git a/packages/material-ui-lab/src/StaticDatePicker/StaticDatePicker.tsx b/packages/material-ui-lab/src/StaticDatePicker/StaticDatePicker.tsx index fa452927d4bc76..908d52a55d6dfa 100644 --- a/packages/material-ui-lab/src/StaticDatePicker/StaticDatePicker.tsx +++ b/packages/material-ui-lab/src/StaticDatePicker/StaticDatePicker.tsx @@ -37,15 +37,8 @@ const valueManager: PickerStateValueManager = { areValuesEqual: (utils: MuiPickersAdapter, a: unknown, b: unknown) => utils.isEqual(a, b), }; -type T = BaseDatePickerProps; -const Wrapper = StaticWrapper; -type TWrapper = typeof Wrapper; -const name = 'MuiStaticDatePicker'; const { DefaultToolbarComponent, useInterceptProps, useValidation } = datePickerConfig; -const KeyboardDateInputComponent = KeyboardDateInput; -const PureDateInputComponent = PureDateInput; - interface WithWrapperProps { children: React.ReactNode; DateInputProps: DateInputPropsLike; @@ -80,7 +73,7 @@ function StaticDatePickerWrapper( ...other } = props; - const TypedWrapper = Wrapper as SomeWrapper; + const TypedWrapper = StaticWrapper as SomeWrapper; return ( ( - __props: T & PublicWrapperProps & AllSharedPickerProps, TDate>, + __props: BaseDatePickerProps & + PublicWrapperProps & + AllSharedPickerProps, TDate>, ref: React.Ref, ) { - const allProps = useInterceptProps(__props) as AllPickerProps; + const allProps = useInterceptProps(__props) as AllPickerProps< + BaseDatePickerProps, + typeof StaticWrapper + >; // This is technically unsound if the type parameters appear in optional props. // Optional props can be filled by `useThemeProps` with types that don't match the type parameters. - const props: AllPickerProps = useThemeProps({ props: allProps, name }); + const props: AllPickerProps, typeof StaticWrapper> = useThemeProps({ + props: allProps, + name: 'MuiStaticDatePicker', + }); const validationError = useValidation(props.value, props) !== null; const { pickerProps, inputProps, wrapperProps } = usePickerState, TDate>( diff --git a/packages/material-ui-lab/src/StaticDateTimePicker/StaticDateTimePicker.tsx b/packages/material-ui-lab/src/StaticDateTimePicker/StaticDateTimePicker.tsx index 3f9ec825257f99..37469c2071efd4 100644 --- a/packages/material-ui-lab/src/StaticDateTimePicker/StaticDateTimePicker.tsx +++ b/packages/material-ui-lab/src/StaticDateTimePicker/StaticDateTimePicker.tsx @@ -37,15 +37,8 @@ const valueManager: PickerStateValueManager = { areValuesEqual: (utils: MuiPickersAdapter, a: unknown, b: unknown) => utils.isEqual(a, b), }; -type T = BaseDateTimePickerProps; -const Wrapper = StaticWrapper; -type TWrapper = typeof StaticWrapper; -const name = 'MuiStaticDateTimePicker'; const { DefaultToolbarComponent, useInterceptProps, useValidation } = dateTimePickerConfig; -const KeyboardDateInputComponent = KeyboardDateInput; -const PureDateInputComponent = PureDateInput; - interface WithWrapperProps { children: React.ReactNode; DateInputProps: DateInputPropsLike; @@ -80,7 +73,7 @@ function StaticDateTimePickerWrapper( ...other } = props; - const TypedWrapper = Wrapper as SomeWrapper; + const TypedWrapper = StaticWrapper as SomeWrapper; return ( ( - __props: T & PublicWrapperProps & AllSharedPickerProps, TDate>, + __props: BaseDateTimePickerProps & + PublicWrapperProps & + AllSharedPickerProps, TDate>, ref: React.Ref, ) { - const allProps = useInterceptProps(__props) as AllPickerProps; + const allProps = useInterceptProps(__props) as AllPickerProps< + BaseDateTimePickerProps, + typeof StaticWrapper + >; // This is technically unsound if the type parameters appear in optional props. // Optional props can be filled by `useThemeProps` with types that don't match the type parameters. - const props: AllPickerProps = useThemeProps({ props: allProps, name }); + const props: AllPickerProps< + BaseDateTimePickerProps, + typeof StaticWrapper + > = useThemeProps({ + props: allProps, + name: 'MuiStaticDateTimePicker', + }); const validationError = useValidation(props.value, props) !== null; const { pickerProps, inputProps, wrapperProps } = usePickerState, TDate>( @@ -146,7 +150,7 @@ const StaticDateTimePicker = React.forwardRef(function StaticDateTimePicker ); -}) as DateTimePickerGenericComponent; +}) as DateTimePickerGenericComponent; StaticDateTimePicker.propTypes /* remove-proptypes */ = { // ----------------------------- Warning -------------------------------- diff --git a/packages/material-ui-lab/src/StaticTimePicker/StaticTimePicker.tsx b/packages/material-ui-lab/src/StaticTimePicker/StaticTimePicker.tsx index 29043860fed9a7..a434b9da7c4599 100644 --- a/packages/material-ui-lab/src/StaticTimePicker/StaticTimePicker.tsx +++ b/packages/material-ui-lab/src/StaticTimePicker/StaticTimePicker.tsx @@ -37,15 +37,8 @@ const valueManager: PickerStateValueManager = { areValuesEqual: (utils: MuiPickersAdapter, a: unknown, b: unknown) => utils.isEqual(a, b), }; -type T = BaseTimePickerProps; -const Wrapper = StaticWrapper; -type TWrapper = typeof Wrapper; -const name = 'MuiStaticTimePicker'; const { DefaultToolbarComponent, useInterceptProps, useValidation } = timePickerConfig; -const KeyboardDateInputComponent = KeyboardDateInput; -const PureDateInputComponent = PureDateInput; - interface WithWrapperProps { children: React.ReactNode; DateInputProps: DateInputPropsLike; @@ -80,7 +73,7 @@ function StaticTimePickerWrapper( ...other } = props; - const TypedWrapper = Wrapper as SomeWrapper; + const TypedWrapper = StaticWrapper as SomeWrapper; return ( ( - __props: T & PublicWrapperProps & AllSharedPickerProps, TDate>, + __props: BaseTimePickerProps & + PublicWrapperProps & + AllSharedPickerProps, TDate>, ref: React.Ref, ) { - const allProps = useInterceptProps(__props) as AllPickerProps; + const allProps = useInterceptProps(__props) as AllPickerProps< + BaseTimePickerProps, + typeof StaticWrapper + >; // This is technically unsound if the type parameters appear in optional props. // Optional props can be filled by `useThemeProps` with types that don't match the type parameters. - const props: AllPickerProps = useThemeProps({ props: allProps, name }); + const props: AllPickerProps = useThemeProps({ + props: allProps, + name: 'MuiStaticTimePicker', + }); const validationError = useValidation(props.value, props) !== null; const { pickerProps, inputProps, wrapperProps } = usePickerState, TDate>( @@ -142,7 +143,7 @@ const StaticTimePicker = React.forwardRef(function StaticTimePicker( /> ); -}) as TimePickerGenericComponent; +}) as TimePickerGenericComponent; StaticTimePicker.propTypes /* remove-proptypes */ = { // ----------------------------- Warning -------------------------------- diff --git a/packages/material-ui-lab/src/TimePicker/TimePicker.tsx b/packages/material-ui-lab/src/TimePicker/TimePicker.tsx index 1cc8e4ee5b4a01..750c13550d987e 100644 --- a/packages/material-ui-lab/src/TimePicker/TimePicker.tsx +++ b/packages/material-ui-lab/src/TimePicker/TimePicker.tsx @@ -103,15 +103,8 @@ export type TimePickerGenericComponent = (( props: BaseTimePickerProps & SharedPickerProps, ) => JSX.Element) & { propTypes?: any }; -type T = BaseTimePickerProps; -const Wrapper = ResponsiveWrapper; -type TWrapper = typeof Wrapper; -const name = 'MuiTimePicker'; const { DefaultToolbarComponent, useValidation } = timePickerConfig; -const KeyboardDateInputComponent = KeyboardDateInput; -const PureDateInputComponent = PureDateInput; - interface WithWrapperProps { children: React.ReactNode; DateInputProps: DateInputPropsLike; @@ -146,7 +139,7 @@ function TimePickerWrapper( ...other } = props; - const TypedWrapper = Wrapper as SomeWrapper; + const TypedWrapper = ResponsiveWrapper as SomeWrapper; return ( ( - __props: T & PublicWrapperProps & AllSharedPickerProps, TDate>, + __props: BaseTimePickerProps & + PublicWrapperProps & + AllSharedPickerProps, TDate>, ref: React.Ref, ) { - const allProps = useInterceptProps(__props) as AllPickerProps; + const allProps = useInterceptProps(__props) as AllPickerProps< + BaseTimePickerProps, + typeof ResponsiveWrapper + >; // This is technically unsound if the type parameters appear in optional props. // Optional props can be filled by `useThemeProps` with types that don't match the type parameters. - const props: AllPickerProps = useThemeProps({ props: allProps, name }); + const props: AllPickerProps = useThemeProps({ + props: allProps, + name: 'MuiTimePicker', + }); const validationError = useValidation(props.value, props) !== null; const { pickerProps, inputProps, wrapperProps } = usePickerState, TDate>( @@ -208,7 +209,7 @@ const TimePicker = React.forwardRef(function TimePicker( /> ); -}) as TimePickerGenericComponent; +}) as TimePickerGenericComponent; TimePicker.propTypes /* remove-proptypes */ = { // ----------------------------- Warning --------------------------------