From a1bc87fd12966d6f20cfb10b19c9c643cdf5ca8c Mon Sep 17 00:00:00 2001 From: flavien Date: Fri, 4 Oct 2024 15:46:57 +0200 Subject: [PATCH] [pickers] Move the DateFieldInPickerProps interface to the picker folder and rename it DatePickerFieldProps (same for time and date time) --- .../src/DateField/DateField.types.ts | 16 +---------- .../x-date-pickers/src/DateField/index.ts | 1 - .../src/DatePicker/DatePicker.types.ts | 22 ++++++++++++++- .../x-date-pickers/src/DatePicker/index.ts | 7 ++++- .../src/DateTimeField/DateTimeField.types.ts | 20 +------------- .../x-date-pickers/src/DateTimeField/index.ts | 1 - .../DateTimePicker/DateTimePicker.types.ts | 27 ++++++++++++++++++- .../src/DateTimePicker/DateTimePickerTabs.tsx | 2 +- .../src/DateTimePicker/index.ts | 1 + .../src/TimeField/TimeField.types.ts | 16 +---------- .../x-date-pickers/src/TimeField/index.ts | 1 - .../src/TimePicker/TimePicker.types.ts | 23 +++++++++++++++- .../x-date-pickers/src/TimePicker/index.ts | 7 ++++- scripts/x-date-pickers-pro.exports.json | 6 ++--- scripts/x-date-pickers.exports.json | 6 ++--- 15 files changed, 92 insertions(+), 64 deletions(-) diff --git a/packages/x-date-pickers/src/DateField/DateField.types.ts b/packages/x-date-pickers/src/DateField/DateField.types.ts index 57ab1e1830ae..cf1bdfcc800a 100644 --- a/packages/x-date-pickers/src/DateField/DateField.types.ts +++ b/packages/x-date-pickers/src/DateField/DateField.types.ts @@ -11,10 +11,9 @@ import { FieldSection, PickerValidDate, BuiltInFieldTextFieldProps, - BaseSingleInputFieldProps, } from '../models'; import { UseFieldInternalProps } from '../internals/hooks/useField'; -import { MakeOptional, DefaultizedProps } from '../internals/models/helpers'; +import { MakeOptional } from '../internals/models/helpers'; import { BaseDateValidationProps, DayValidationProps, @@ -41,19 +40,6 @@ export interface UseDateFieldProps< BaseDateValidationProps, ExportedUseClearableFieldProps {} -/** - * Props the field can receive when used inside a date picker. - * (`DatePicker`, `DesktopDatePicker` or `MobileDatePicker` component). - */ -export type DateFieldInPickerProps< - TDate extends PickerValidDate, - TEnableAccessibleFieldDOMStructure extends boolean, -> = DefaultizedProps< - UseDateFieldProps, - 'format' | 'timezone' | keyof BaseDateValidationProps -> & - BaseSingleInputFieldProps; - export type UseDateFieldComponentProps< TDate extends PickerValidDate, TEnableAccessibleFieldDOMStructure extends boolean, diff --git a/packages/x-date-pickers/src/DateField/index.ts b/packages/x-date-pickers/src/DateField/index.ts index e5f8fe21dcb2..cd6119e98a25 100644 --- a/packages/x-date-pickers/src/DateField/index.ts +++ b/packages/x-date-pickers/src/DateField/index.ts @@ -4,5 +4,4 @@ export type { UseDateFieldProps, UseDateFieldComponentProps, DateFieldProps, - DateFieldInPickerProps, } from './DateField.types'; diff --git a/packages/x-date-pickers/src/DatePicker/DatePicker.types.ts b/packages/x-date-pickers/src/DatePicker/DatePicker.types.ts index be4f6c1fbfca..5a839bae4155 100644 --- a/packages/x-date-pickers/src/DatePicker/DatePicker.types.ts +++ b/packages/x-date-pickers/src/DatePicker/DatePicker.types.ts @@ -1,14 +1,22 @@ +import { UseDateFieldProps } from '../DateField'; import { DesktopDatePickerProps, DesktopDatePickerSlots, DesktopDatePickerSlotProps, } from '../DesktopDatePicker'; +import { DefaultizedProps } from '../internals/models/helpers'; +import { BaseDateValidationProps } from '../internals/models/validation'; import { MobileDatePickerProps, MobileDatePickerSlots, MobileDatePickerSlotProps, } from '../MobileDatePicker'; -import { PickerValidDate } from '../models'; +import { + BaseSingleInputFieldProps, + DateValidationError, + FieldSection, + PickerValidDate, +} from '../models'; export interface DatePickerSlots extends DesktopDatePickerSlots, @@ -47,3 +55,15 @@ export interface DatePickerProps< */ yearsPerRow?: 3 | 4; } + +/** + * Props the field can receive when used inside a `DatePicker`, `DesktopDatePicker` or `MobileDatePicker` component. + */ +export type DatePickerFieldProps< + TDate extends PickerValidDate, + TEnableAccessibleFieldDOMStructure extends boolean = false, +> = DefaultizedProps< + UseDateFieldProps, + 'format' | 'timezone' | keyof BaseDateValidationProps +> & + BaseSingleInputFieldProps; diff --git a/packages/x-date-pickers/src/DatePicker/index.ts b/packages/x-date-pickers/src/DatePicker/index.ts index 8c1fecffe1aa..117b9833d3d2 100644 --- a/packages/x-date-pickers/src/DatePicker/index.ts +++ b/packages/x-date-pickers/src/DatePicker/index.ts @@ -1,5 +1,10 @@ export { DatePicker } from './DatePicker'; -export type { DatePickerProps, DatePickerSlots, DatePickerSlotProps } from './DatePicker.types'; +export type { + DatePickerProps, + DatePickerSlots, + DatePickerSlotProps, + DatePickerFieldProps, +} from './DatePicker.types'; export { DatePickerToolbar } from './DatePickerToolbar'; export type { DatePickerToolbarProps } from './DatePickerToolbar'; diff --git a/packages/x-date-pickers/src/DateTimeField/DateTimeField.types.ts b/packages/x-date-pickers/src/DateTimeField/DateTimeField.types.ts index e19e41a6345a..625f70532e55 100644 --- a/packages/x-date-pickers/src/DateTimeField/DateTimeField.types.ts +++ b/packages/x-date-pickers/src/DateTimeField/DateTimeField.types.ts @@ -6,10 +6,9 @@ import { FieldSection, PickerValidDate, BuiltInFieldTextFieldProps, - BaseSingleInputFieldProps, } from '../models'; import { UseFieldInternalProps } from '../internals/hooks/useField'; -import { DefaultizedProps, MakeOptional } from '../internals/models/helpers'; +import { MakeOptional } from '../internals/models/helpers'; import { BaseDateValidationProps, BaseTimeValidationProps, @@ -53,23 +52,6 @@ export interface UseDateTimeFieldProps< ampm?: boolean; } -/** - * Props the field can receive when used inside a date time picker. - * (`DateTimePicker`, `DesktopDateTimePicker` or `MobileDateTimePicker` component). - */ -export type DateTimeFieldInPickerProps< - TDate extends PickerValidDate, - TEnableAccessibleFieldDOMStructure extends boolean, -> = DefaultizedProps< - UseDateTimeFieldProps, - | 'format' - | 'timezone' - | 'ampm' - | keyof BaseDateValidationProps - | keyof BaseTimeValidationProps -> & - BaseSingleInputFieldProps; - export type UseDateTimeFieldComponentProps< TDate extends PickerValidDate, TEnableAccessibleFieldDOMStructure extends boolean, diff --git a/packages/x-date-pickers/src/DateTimeField/index.ts b/packages/x-date-pickers/src/DateTimeField/index.ts index 212ce42432f5..95952dde9474 100644 --- a/packages/x-date-pickers/src/DateTimeField/index.ts +++ b/packages/x-date-pickers/src/DateTimeField/index.ts @@ -4,5 +4,4 @@ export type { UseDateTimeFieldProps, UseDateTimeFieldComponentProps, DateTimeFieldProps, - DateTimeFieldInPickerProps, } from './DateTimeField.types'; diff --git a/packages/x-date-pickers/src/DateTimePicker/DateTimePicker.types.ts b/packages/x-date-pickers/src/DateTimePicker/DateTimePicker.types.ts index 8053bc8c5c63..6ae28b8bc2fe 100644 --- a/packages/x-date-pickers/src/DateTimePicker/DateTimePicker.types.ts +++ b/packages/x-date-pickers/src/DateTimePicker/DateTimePicker.types.ts @@ -1,15 +1,23 @@ +import { UseDateTimeFieldProps } from '../DateTimeField'; import { DesktopDateTimePickerProps, DesktopDateTimePickerSlots, DesktopDateTimePickerSlotProps, } from '../DesktopDateTimePicker'; import { DateOrTimeViewWithMeridiem } from '../internals/models'; +import { DefaultizedProps } from '../internals/models/helpers'; +import { BaseDateValidationProps, BaseTimeValidationProps } from '../internals/models/validation'; import { MobileDateTimePickerProps, MobileDateTimePickerSlots, MobileDateTimePickerSlotProps, } from '../MobileDateTimePicker'; -import { PickerValidDate } from '../models'; +import { + BaseSingleInputFieldProps, + DateTimeValidationError, + FieldSection, + PickerValidDate, +} from '../models'; import { ExportedYearCalendarProps } from '../YearCalendar/YearCalendar.types'; export interface DateTimePickerSlots @@ -61,3 +69,20 @@ export interface DateTimePickerProps< */ yearsPerRow?: 3 | 4; } + +/** + * Props the field can receive when used inside a date time picker. + * (`DateTimePicker`, `DesktopDateTimePicker` or `MobileDateTimePicker` component). + */ +export type DateTimePickerFieldProps< + TDate extends PickerValidDate, + TEnableAccessibleFieldDOMStructure extends boolean = false, +> = DefaultizedProps< + UseDateTimeFieldProps, + | 'format' + | 'timezone' + | 'ampm' + | keyof BaseDateValidationProps + | keyof BaseTimeValidationProps +> & + BaseSingleInputFieldProps; diff --git a/packages/x-date-pickers/src/DateTimePicker/DateTimePickerTabs.tsx b/packages/x-date-pickers/src/DateTimePicker/DateTimePickerTabs.tsx index dba5be6d3383..a9042194162d 100644 --- a/packages/x-date-pickers/src/DateTimePicker/DateTimePickerTabs.tsx +++ b/packages/x-date-pickers/src/DateTimePicker/DateTimePickerTabs.tsx @@ -126,7 +126,7 @@ const DateTimePickerTabs = function DateTimePickerTabs = DefaultizedProps< - UseTimeFieldProps, - 'format' | 'timezone' | 'ampm' | keyof BaseTimeValidationProps -> & - BaseSingleInputFieldProps; - export type UseTimeFieldComponentProps< TDate extends PickerValidDate, TEnableAccessibleFieldDOMStructure extends boolean, diff --git a/packages/x-date-pickers/src/TimeField/index.ts b/packages/x-date-pickers/src/TimeField/index.ts index cf9c1e6a5881..f335f0f8fd76 100644 --- a/packages/x-date-pickers/src/TimeField/index.ts +++ b/packages/x-date-pickers/src/TimeField/index.ts @@ -4,5 +4,4 @@ export type { UseTimeFieldProps, UseTimeFieldComponentProps, TimeFieldProps, - TimeFieldInPickerProps, } from './TimeField.types'; diff --git a/packages/x-date-pickers/src/TimePicker/TimePicker.types.ts b/packages/x-date-pickers/src/TimePicker/TimePicker.types.ts index 23121361eff6..ea7f4fd343b1 100644 --- a/packages/x-date-pickers/src/TimePicker/TimePicker.types.ts +++ b/packages/x-date-pickers/src/TimePicker/TimePicker.types.ts @@ -4,12 +4,20 @@ import { DesktopTimePickerSlotProps, } from '../DesktopTimePicker'; import { TimeViewWithMeridiem } from '../internals/models'; +import { DefaultizedProps } from '../internals/models/helpers'; +import { BaseTimeValidationProps } from '../internals/models/validation'; import { MobileTimePickerProps, MobileTimePickerSlots, MobileTimePickerSlotProps, } from '../MobileTimePicker'; -import { PickerValidDate } from '../models'; +import { + BaseSingleInputFieldProps, + FieldSection, + PickerValidDate, + TimeValidationError, +} from '../models'; +import { UseTimeFieldProps } from '../TimeField'; export interface TimePickerSlots extends DesktopTimePickerSlots, @@ -46,3 +54,16 @@ export interface TimePickerProps< */ slotProps?: TimePickerSlotProps; } + +/** + * Props the field can receive when used inside a time picker. + * (`TimePicker`, `DesktopTimePicker` or `MobileTimePicker` component). + */ +export type TimePickerFieldProps< + TDate extends PickerValidDate, + TEnableAccessibleFieldDOMStructure extends boolean = false, +> = DefaultizedProps< + UseTimeFieldProps, + 'format' | 'timezone' | 'ampm' | keyof BaseTimeValidationProps +> & + BaseSingleInputFieldProps; diff --git a/packages/x-date-pickers/src/TimePicker/index.ts b/packages/x-date-pickers/src/TimePicker/index.ts index 485198a142bf..9f2f67d1a536 100644 --- a/packages/x-date-pickers/src/TimePicker/index.ts +++ b/packages/x-date-pickers/src/TimePicker/index.ts @@ -1,5 +1,10 @@ export { TimePicker } from './TimePicker'; -export type { TimePickerProps, TimePickerSlots, TimePickerSlotProps } from './TimePicker.types'; +export type { + TimePickerProps, + TimePickerSlots, + TimePickerSlotProps, + TimePickerFieldProps, +} from './TimePicker.types'; export { TimePickerToolbar } from './TimePickerToolbar'; export type { TimePickerToolbarProps } from './TimePickerToolbar'; diff --git a/scripts/x-date-pickers-pro.exports.json b/scripts/x-date-pickers-pro.exports.json index 24beed350813..efd9594f7858 100644 --- a/scripts/x-date-pickers-pro.exports.json +++ b/scripts/x-date-pickers-pro.exports.json @@ -34,10 +34,10 @@ { "name": "DateCalendarSlotProps", "kind": "Interface" }, { "name": "DateCalendarSlots", "kind": "Interface" }, { "name": "DateField", "kind": "Variable" }, - { "name": "DateFieldInPickerProps", "kind": "TypeAlias" }, { "name": "DateFieldProps", "kind": "TypeAlias" }, { "name": "DateOrTimeView", "kind": "TypeAlias" }, { "name": "DatePicker", "kind": "Variable" }, + { "name": "DatePickerFieldProps", "kind": "TypeAlias" }, { "name": "DatePickerProps", "kind": "Interface" }, { "name": "DatePickerSlotProps", "kind": "Interface" }, { "name": "DatePickerSlots", "kind": "Interface" }, @@ -72,9 +72,9 @@ { "name": "DateRangeValidationError", "kind": "TypeAlias" }, { "name": "DateRangeViewRendererProps", "kind": "Interface" }, { "name": "DateTimeField", "kind": "Variable" }, - { "name": "DateTimeFieldInPickerProps", "kind": "TypeAlias" }, { "name": "DateTimeFieldProps", "kind": "TypeAlias" }, { "name": "DateTimePicker", "kind": "Variable" }, + { "name": "DateTimePickerFieldProps", "kind": "TypeAlias" }, { "name": "DateTimePickerProps", "kind": "Interface" }, { "name": "DateTimePickerSlotProps", "kind": "Interface" }, { "name": "DateTimePickerSlots", "kind": "Interface" }, @@ -372,10 +372,10 @@ { "name": "TimeClockSlotProps", "kind": "Interface" }, { "name": "TimeClockSlots", "kind": "Interface" }, { "name": "TimeField", "kind": "Variable" }, - { "name": "TimeFieldInPickerProps", "kind": "TypeAlias" }, { "name": "TimeFieldProps", "kind": "TypeAlias" }, { "name": "TimeIcon", "kind": "Variable" }, { "name": "TimePicker", "kind": "Variable" }, + { "name": "TimePickerFieldProps", "kind": "TypeAlias" }, { "name": "TimePickerProps", "kind": "Interface" }, { "name": "TimePickerSlotProps", "kind": "Interface" }, { "name": "TimePickerSlots", "kind": "Interface" }, diff --git a/scripts/x-date-pickers.exports.json b/scripts/x-date-pickers.exports.json index 4ae16b168cba..8581ad347351 100644 --- a/scripts/x-date-pickers.exports.json +++ b/scripts/x-date-pickers.exports.json @@ -31,10 +31,10 @@ { "name": "DateCalendarSlotProps", "kind": "Interface" }, { "name": "DateCalendarSlots", "kind": "Interface" }, { "name": "DateField", "kind": "Variable" }, - { "name": "DateFieldInPickerProps", "kind": "TypeAlias" }, { "name": "DateFieldProps", "kind": "TypeAlias" }, { "name": "DateOrTimeView", "kind": "TypeAlias" }, { "name": "DatePicker", "kind": "Variable" }, + { "name": "DatePickerFieldProps", "kind": "TypeAlias" }, { "name": "DatePickerProps", "kind": "Interface" }, { "name": "DatePickerSlotProps", "kind": "Interface" }, { "name": "DatePickerSlots", "kind": "Interface" }, @@ -45,9 +45,9 @@ { "name": "DatePickerToolbarProps", "kind": "Interface" }, { "name": "DateRangeIcon", "kind": "Variable" }, { "name": "DateTimeField", "kind": "Variable" }, - { "name": "DateTimeFieldInPickerProps", "kind": "TypeAlias" }, { "name": "DateTimeFieldProps", "kind": "TypeAlias" }, { "name": "DateTimePicker", "kind": "Variable" }, + { "name": "DateTimePickerFieldProps", "kind": "TypeAlias" }, { "name": "DateTimePickerProps", "kind": "Interface" }, { "name": "DateTimePickerSlotProps", "kind": "Interface" }, { "name": "DateTimePickerSlots", "kind": "Interface" }, @@ -271,10 +271,10 @@ { "name": "TimeClockSlotProps", "kind": "Interface" }, { "name": "TimeClockSlots", "kind": "Interface" }, { "name": "TimeField", "kind": "Variable" }, - { "name": "TimeFieldInPickerProps", "kind": "TypeAlias" }, { "name": "TimeFieldProps", "kind": "TypeAlias" }, { "name": "TimeIcon", "kind": "Variable" }, { "name": "TimePicker", "kind": "Variable" }, + { "name": "TimePickerFieldProps", "kind": "TypeAlias" }, { "name": "TimePickerProps", "kind": "Interface" }, { "name": "TimePickerSlotProps", "kind": "Interface" }, { "name": "TimePickerSlots", "kind": "Interface" },