Skip to content

Commit

Permalink
Inline intermediate variables
Browse files Browse the repository at this point in the history
  • Loading branch information
eps1lon committed Mar 11, 2021
1 parent 227e834 commit 6738165
Show file tree
Hide file tree
Showing 12 changed files with 190 additions and 156 deletions.
31 changes: 18 additions & 13 deletions packages/material-ui-lab/src/DatePicker/DatePicker.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -91,15 +91,9 @@ export type DatePickerGenericComponent<TWrapper extends SomeWrapper> = (<TDate>(
props: BaseDatePickerProps<TDate> & SharedPickerProps<TDate, TWrapper>,
) => JSX.Element) & { propTypes?: any };

type T = BaseDatePickerProps<unknown>;
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;
Expand Down Expand Up @@ -134,7 +128,7 @@ function DatePickerWrapper(
...other
} = props;

const TypedWrapper = Wrapper as SomeWrapper;
const TypedWrapper = ResponsiveWrapper as SomeWrapper;

return (
<TypedWrapper
Expand All @@ -146,8 +140,8 @@ function DatePickerWrapper(
todayText={todayText}
cancelText={cancelText}
DateInputProps={DateInputProps}
KeyboardDateInputComponent={KeyboardDateInputComponent}
PureDateInputComponent={PureDateInputComponent}
KeyboardDateInputComponent={KeyboardDateInput}
PureDateInputComponent={PureDateInput}
displayStaticWrapperAs={displayStaticWrapperAs}
{...wrapperProps}
{...other}
Expand All @@ -166,13 +160,24 @@ function DatePickerWrapper(
* - [DatePicker API](https://material-ui.com/api/date-picker/)
*/
const DatePicker = React.forwardRef(function DatePicker<TDate>(
__props: T & PublicWrapperProps<TWrapper> & AllSharedPickerProps<ParsableDate<TDate>, TDate>,
__props: BaseDatePickerProps<unknown> &
PublicWrapperProps<typeof ResponsiveWrapper> &
AllSharedPickerProps<ParsableDate<TDate>, TDate>,
ref: React.Ref<HTMLInputElement>,
) {
const allProps = useInterceptProps(__props) as AllPickerProps<T, TWrapper>;
const allProps = useInterceptProps(__props) as AllPickerProps<
BaseDatePickerProps<unknown>,
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<T, TWrapper> = useThemeProps({ props: allProps, name });
const props: AllPickerProps<
BaseDatePickerProps<unknown>,
typeof ResponsiveWrapper
> = useThemeProps({
props: allProps,
name,
});

const validationError = useValidation(props.value, props) !== null;
const { pickerProps, inputProps, wrapperProps } = usePickerState<ParsableDate<TDate>, TDate>(
Expand All @@ -196,7 +201,7 @@ const DatePicker = React.forwardRef(function DatePicker<TDate>(
/>
</DatePickerWrapper>
);
}) as DatePickerGenericComponent<TWrapper>;
}) as DatePickerGenericComponent<typeof ResponsiveWrapper>;

DatePicker.propTypes /* remove-proptypes */ = {
// ----------------------------- Warning --------------------------------
Expand Down
30 changes: 17 additions & 13 deletions packages/material-ui-lab/src/DateTimePicker/DateTimePicker.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -154,15 +154,8 @@ export type DateTimePickerGenericComponent<TWrapper extends SomeWrapper> = (<TDa
props: BaseDateTimePickerProps<TDate> & SharedPickerProps<TDate, TWrapper>,
) => JSX.Element) & { propTypes?: unknown };

type T = BaseDateTimePickerProps<unknown>;
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;
Expand Down Expand Up @@ -197,7 +190,7 @@ function DateTimePickerWrapper(
...other
} = props;

const TypedWrapper = Wrapper as SomeWrapper;
const TypedWrapper = ResponsiveWrapper as SomeWrapper;

return (
<TypedWrapper
Expand All @@ -209,8 +202,8 @@ function DateTimePickerWrapper(
todayText={todayText}
cancelText={cancelText}
DateInputProps={DateInputProps}
KeyboardDateInputComponent={KeyboardDateInputComponent}
PureDateInputComponent={PureDateInputComponent}
KeyboardDateInputComponent={KeyboardDateInput}
PureDateInputComponent={PureDateInput}
displayStaticWrapperAs={displayStaticWrapperAs}
{...wrapperProps}
{...other}
Expand All @@ -229,13 +222,24 @@ function DateTimePickerWrapper(
* - [DateTimePicker API](https://material-ui.com/api/date-time-picker/)
*/
const DateTimePicker = React.forwardRef(function DateTimePicker<TDate>(
__props: T & PublicWrapperProps<TWrapper> & AllSharedPickerProps<ParsableDate<TDate>, TDate>,
__props: BaseDateTimePickerProps<unknown> &
PublicWrapperProps<typeof ResponsiveWrapper> &
AllSharedPickerProps<ParsableDate<TDate>, TDate>,
ref: React.Ref<HTMLInputElement>,
) {
const allProps = useInterceptProps(__props) as AllPickerProps<T, TWrapper>;
const allProps = useInterceptProps(__props) as AllPickerProps<
BaseDateTimePickerProps<unknown>,
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<T, TWrapper> = useThemeProps({ props: allProps, name });
const props: AllPickerProps<
BaseDateTimePickerProps<unknown>,
typeof ResponsiveWrapper
> = useThemeProps({
props: allProps,
name: 'MuiDateTimePicker',
});

const validationError = useValidation(props.value, props) !== null;
const { pickerProps, inputProps, wrapperProps } = usePickerState<ParsableDate<TDate>, TDate>(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,8 @@ const valueManager: PickerStateValueManager<unknown, unknown> = {
areValuesEqual: (utils: MuiPickersAdapter, a: unknown, b: unknown) => utils.isEqual(a, b),
};

const Wrapper = DesktopWrapper;
type TWrapper = typeof Wrapper;
const name = 'MuiDesktopDatePicker';
type T = BaseDatePickerProps<unknown>;
const { DefaultToolbarComponent, useInterceptProps, useValidation } = datePickerConfig;

const KeyboardDateInputComponent = KeyboardDateInput;
const PureDateInputComponent = PureDateInput;

interface WithWrapperProps {
children: React.ReactNode;
DateInputProps: DateInputPropsLike;
Expand Down Expand Up @@ -80,7 +73,7 @@ function DesktopDatePickerWrapper(
...other
} = props;

const TypedWrapper = Wrapper as SomeWrapper;
const TypedWrapper = DesktopWrapper as SomeWrapper;

return (
<TypedWrapper
Expand All @@ -92,8 +85,8 @@ function DesktopDatePickerWrapper(
todayText={todayText}
cancelText={cancelText}
DateInputProps={DateInputProps}
KeyboardDateInputComponent={KeyboardDateInputComponent}
PureDateInputComponent={PureDateInputComponent}
KeyboardDateInputComponent={KeyboardDateInput}
PureDateInputComponent={PureDateInput}
displayStaticWrapperAs={displayStaticWrapperAs}
{...wrapperProps}
{...other}
Expand All @@ -107,13 +100,21 @@ function DesktopDatePickerWrapper(
* - [DesktopDatePicker API](https://material-ui.com/api/desktop-date-picker/)
*/
const DesktopDatePicker = React.forwardRef(function DesktopDatePicker<TDate>(
__props: T & AllSharedPickerProps<ParsableDate<TDate>, TDate> & PublicWrapperProps<TWrapper>,
__props: BaseDatePickerProps<unknown> &
AllSharedPickerProps<ParsableDate<TDate>, TDate> &
PublicWrapperProps<typeof DesktopWrapper>,
ref: React.Ref<HTMLInputElement>,
) {
const allProps = useInterceptProps(__props) as AllPickerProps<T, TWrapper>;
const allProps = useInterceptProps(__props) as AllPickerProps<
BaseDatePickerProps<unknown>,
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<T, TWrapper> = useThemeProps({ props: allProps, name });
const props: AllPickerProps<BaseDatePickerProps<unknown>, typeof DesktopWrapper> = useThemeProps({
props: allProps,
name: 'MuiDesktopDatePicker',
});

const validationError = useValidation(props.value, props) !== null;
const { pickerProps, inputProps, wrapperProps } = usePickerState<ParsableDate<TDate>, TDate>(
Expand Down Expand Up @@ -141,7 +142,7 @@ const DesktopDatePicker = React.forwardRef(function DesktopDatePicker<TDate>(
/>
</DesktopDatePickerWrapper>
);
}) as DatePickerGenericComponent<TWrapper>;
}) as DatePickerGenericComponent<typeof DesktopWrapper>;

DesktopDatePicker.propTypes /* remove-proptypes */ = {
// ----------------------------- Warning --------------------------------
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,6 @@ const valueManager: PickerStateValueManager<unknown, unknown> = {
areValuesEqual: (utils: MuiPickersAdapter, a: unknown, b: unknown) => utils.isEqual(a, b),
};

type T = BaseDateTimePickerProps<unknown>;
const Wrapper = DesktopWrapper;
type TWrapper = typeof DesktopWrapper;
const name = 'MuiDesktopDateTimePicker';
const { DefaultToolbarComponent, useInterceptProps, useValidation } = dateTimePickerConfig;

Expand Down Expand Up @@ -80,7 +77,7 @@ function DesktopDateTimePickerWrapper(
...other
} = props;

const TypedWrapper = Wrapper as SomeWrapper;
const TypedWrapper = DesktopWrapper as SomeWrapper;

return (
<TypedWrapper
Expand Down Expand Up @@ -112,13 +109,24 @@ function DesktopDateTimePickerWrapper(
* - [DesktopDateTimePicker API](https://material-ui.com/api/desktop-date-time-picker/)
*/
const DesktopDateTimePicker = React.forwardRef(function DesktopDateTimePicker<TDate>(
__props: T & PublicWrapperProps<TWrapper> & AllSharedPickerProps<ParsableDate<TDate>, TDate>,
__props: BaseDateTimePickerProps<unknown> &
PublicWrapperProps<typeof DesktopWrapper> &
AllSharedPickerProps<ParsableDate<TDate>, TDate>,
ref: React.Ref<HTMLInputElement>,
) {
const allProps = useInterceptProps(__props) as AllPickerProps<T, TWrapper>;
const allProps = useInterceptProps(__props) as AllPickerProps<
BaseDateTimePickerProps<unknown>,
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<T, TWrapper> = useThemeProps({ props: allProps, name });
const props: AllPickerProps<
BaseDateTimePickerProps<unknown>,
typeof DesktopWrapper
> = useThemeProps({
props: allProps,
name,
});

const validationError = useValidation(props.value, props) !== null;
const { pickerProps, inputProps, wrapperProps } = usePickerState<ParsableDate<TDate>, TDate>(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,8 @@ const valueManager: PickerStateValueManager<unknown, unknown> = {
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;
Expand Down Expand Up @@ -79,7 +73,7 @@ function DesktopTimePickerWrapper(
...other
} = props;

const TypedWrapper = Wrapper as SomeWrapper;
const TypedWrapper = DesktopWrapper as SomeWrapper;

return (
<TypedWrapper
Expand All @@ -91,8 +85,8 @@ function DesktopTimePickerWrapper(
todayText={todayText}
cancelText={cancelText}
DateInputProps={DateInputProps}
KeyboardDateInputComponent={KeyboardDateInputComponent}
PureDateInputComponent={PureDateInputComponent}
KeyboardDateInputComponent={KeyboardDateInput}
PureDateInputComponent={PureDateInput}
displayStaticWrapperAs={displayStaticWrapperAs}
{...wrapperProps}
{...other}
Expand All @@ -107,13 +101,21 @@ function DesktopTimePickerWrapper(
* - [DesktopTimePicker API](https://material-ui.com/api/desktop-time-picker/)
*/
const DesktopTimePicker = React.forwardRef(function DesktopTimePicker<TDate>(
__props: T & PublicWrapperProps<TWrapper> & AllSharedPickerProps<ParsableDate<TDate>, TDate>,
__props: BaseTimePickerProps &
PublicWrapperProps<typeof DesktopWrapper> &
AllSharedPickerProps<ParsableDate<TDate>, TDate>,
ref: React.Ref<HTMLInputElement>,
) {
const allProps = useInterceptProps(__props) as AllPickerProps<T, TWrapper>;
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<T, TWrapper> = useThemeProps({ props: allProps, name });
const props: AllPickerProps<BaseTimePickerProps, typeof DesktopWrapper> = useThemeProps({
props: allProps,
name: 'MuiDesktopTimePicker',
});

const validationError = useValidation(props.value, props) !== null;
const { pickerProps, inputProps, wrapperProps } = usePickerState<ParsableDate<TDate>, TDate>(
Expand Down Expand Up @@ -141,7 +143,7 @@ const DesktopTimePicker = React.forwardRef(function DesktopTimePicker<TDate>(
/>
</DesktopTimePickerWrapper>
);
}) as TimePickerGenericComponent<TWrapper>;
}) as TimePickerGenericComponent<typeof DesktopWrapper>;

DesktopTimePicker.propTypes /* remove-proptypes */ = {
// ----------------------------- Warning --------------------------------
Expand Down
28 changes: 15 additions & 13 deletions packages/material-ui-lab/src/MobileDatePicker/MobileDatePicker.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,7 @@ const valueManager: PickerStateValueManager<unknown, unknown> = {
areValuesEqual: (utils: MuiPickersAdapter, a: unknown, b: unknown) => utils.isEqual(a, b),
};

const Wrapper = MobileWrapper;
type TWrapper = typeof Wrapper;
const name = 'MuiMobileDatePicker';
type T = BaseDatePickerProps<unknown>;
const { DefaultToolbarComponent, useInterceptProps, useValidation } = datePickerConfig;
const KeyboardDateInputComponent = KeyboardDateInput;
const PureDateInputComponent = PureDateInput;

interface WithWrapperProps {
children: React.ReactNode;
Expand Down Expand Up @@ -79,7 +73,7 @@ function MobileDatePickerWrapper(
...other
} = props;

const TypedWrapper = Wrapper as SomeWrapper;
const TypedWrapper = MobileWrapper as SomeWrapper;

return (
<TypedWrapper
Expand All @@ -91,8 +85,8 @@ function MobileDatePickerWrapper(
todayText={todayText}
cancelText={cancelText}
DateInputProps={DateInputProps}
KeyboardDateInputComponent={KeyboardDateInputComponent}
PureDateInputComponent={PureDateInputComponent}
KeyboardDateInputComponent={KeyboardDateInput}
PureDateInputComponent={PureDateInput}
displayStaticWrapperAs={displayStaticWrapperAs}
{...wrapperProps}
{...other}
Expand All @@ -107,13 +101,21 @@ function MobileDatePickerWrapper(
* - [MobileDatePicker API](https://material-ui.com/api/mobile-date-picker/)
*/
const MobileDatePicker = React.forwardRef(function MobileDatePicker<TDate>(
__props: T & PublicWrapperProps<TWrapper> & AllSharedPickerProps<ParsableDate<TDate>, TDate>,
__props: BaseDatePickerProps<unknown> &
PublicWrapperProps<typeof MobileWrapper> &
AllSharedPickerProps<ParsableDate<TDate>, TDate>,
ref: React.Ref<HTMLInputElement>,
) {
const allProps = useInterceptProps(__props) as AllPickerProps<T, TWrapper>;
const allProps = useInterceptProps(__props) as AllPickerProps<
BaseDatePickerProps<unknown>,
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<T, TWrapper> = useThemeProps({ props: allProps, name });
const props: AllPickerProps<BaseDatePickerProps<unknown>, typeof MobileWrapper> = useThemeProps({
props: allProps,
name: 'MuiMobileDatePicker',
});

const validationError = useValidation(props.value, props) !== null;
const { pickerProps, inputProps, wrapperProps } = usePickerState<ParsableDate<TDate>, TDate>(
Expand Down Expand Up @@ -141,7 +143,7 @@ const MobileDatePicker = React.forwardRef(function MobileDatePicker<TDate>(
/>
</MobileDatePickerWrapper>
);
}) as DatePickerGenericComponent<TWrapper>;
}) as DatePickerGenericComponent<typeof MobileWrapper>;

MobileDatePicker.propTypes /* remove-proptypes */ = {
// ----------------------------- Warning --------------------------------
Expand Down
Loading

0 comments on commit 6738165

Please sign in to comment.