Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pickers] Remove code duplication for the multi input range fields #15505

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
153 commits
Select commit Hold shift + click to select a range
5d145b6
[pickers] Replace TValue and TSection generics with TIsRange
flaviendelangle Nov 5, 2024
a8f316d
Merge branch 'master' into tisrange
flaviendelangle Nov 6, 2024
6ed4952
Fix CI
flaviendelangle Nov 6, 2024
5904738
Merge
flaviendelangle Nov 6, 2024
5419886
Merge branch 'master' into tisrange
flaviendelangle Nov 7, 2024
5c34425
Merge branch 'master' into tisrange
flaviendelangle Nov 8, 2024
bbd4fe2
[pickers] Introduce an improved version of the value manager
flaviendelangle Nov 8, 2024
7821632
Work on value manager usage
flaviendelangle Nov 12, 2024
3a73dd3
Merge
flaviendelangle Nov 12, 2024
dc89d3c
Merge branch 'tisrange' into v8-value-manager
flaviendelangle Nov 12, 2024
eda4787
Work
flaviendelangle Nov 13, 2024
f7ee409
Fix
flaviendelangle Nov 13, 2024
b04e5bb
Merge branch 'master' into tisrange
flaviendelangle Nov 13, 2024
cae8762
Work
flaviendelangle Nov 13, 2024
f06c8ca
Work
flaviendelangle Nov 13, 2024
48c9261
Merge branch 'tisrange' into v8-value-manager
flaviendelangle Nov 13, 2024
20805bd
Fix'
flaviendelangle Nov 13, 2024
f6b78d9
Work
flaviendelangle Nov 13, 2024
d47da98
Fix
flaviendelangle Nov 13, 2024
7eebeb7
Merge
flaviendelangle Nov 14, 2024
3493484
Merge branch 'tisrange' into v8-value-manager
flaviendelangle Nov 14, 2024
3a52a82
Review: Lukas
flaviendelangle Nov 14, 2024
3e18240
Review: Lukas
flaviendelangle Nov 14, 2024
8aae145
Remove as
flaviendelangle Nov 14, 2024
49b7030
Merge branch 'tisrange' into v8-value-manager
flaviendelangle Nov 14, 2024
ae71f10
Move value manager to hookss
flaviendelangle Nov 14, 2024
4dbfd03
xImprove internals
flaviendelangle Nov 14, 2024
6993047
Merge branch 'master' into tisrange
flaviendelangle Nov 14, 2024
9e7e9aa
Fix
flaviendelangle Nov 14, 2024
0d6562c
Merge branch 'master' into tisrange
flaviendelangle Nov 15, 2024
6066a59
Work
flaviendelangle Nov 15, 2024
d1ca6a4
Fix
flaviendelangle Nov 15, 2024
407ec45
[pickers] Remove TSection and stictly type TValue
flaviendelangle Nov 15, 2024
d7661ae
Merge
flaviendelangle Nov 15, 2024
b7ac3ee
Fix
flaviendelangle Nov 18, 2024
db88d0e
Fix
flaviendelangle Nov 18, 2024
8c30f22
Merge branch 'tvalue' into v8-value-manager
flaviendelangle Nov 18, 2024
78df9d0
Fix
flaviendelangle Nov 18, 2024
5625c29
Merge branch 'master' into tvalue
flaviendelangle Nov 18, 2024
25bb456
Fix
flaviendelangle Nov 18, 2024
2bab784
Add migration guide
flaviendelangle Nov 18, 2024
3f8e296
Improve migration guide
flaviendelangle Nov 18, 2024
24dbb6d
Merge branch 'master' into v8-value-manager
flaviendelangle Nov 18, 2024
b866d81
Remove useless changes
flaviendelangle Nov 18, 2024
bea99a0
Merge branch 'tvalue' into v8-value-manager
flaviendelangle Nov 18, 2024
c39d33f
Fix
flaviendelangle Nov 18, 2024
0429717
Work
flaviendelangle Nov 18, 2024
59dc346
Improve JSDoc
flaviendelangle Nov 18, 2024
f895380
Merge branch 'master' into tvalue
flaviendelangle Nov 18, 2024
81643d9
Merge branch 'tvalue' into v8-value-manager
flaviendelangle Nov 18, 2024
21c8518
Work
flaviendelangle Nov 18, 2024
74df222
WOrk
flaviendelangle Nov 18, 2024
fe6d825
Merge branch 'master' into tvalue
flaviendelangle Nov 19, 2024
0d60ce3
Merge branch 'tvalue' into v8-value-manager
flaviendelangle Nov 19, 2024
b0e3265
Merge
flaviendelangle Nov 19, 2024
c0c7db8
Merge branch 'tvalue' into v8-value-manager
flaviendelangle Nov 19, 2024
e7f5500
Fix
flaviendelangle Nov 19, 2024
eb563eb
Merge branch 'tvalue' into v8-value-manager
flaviendelangle Nov 19, 2024
f6b087a
Merge
flaviendelangle Nov 20, 2024
4dd3038
Merge branch 'tvalue' into v8-value-manager
flaviendelangle Nov 20, 2024
3eb5a04
Fix
flaviendelangle Nov 20, 2024
dfb54b7
[pickers] POC: Use the new managers for the multi input range fields
flaviendelangle Nov 20, 2024
86d64e2
Clean
flaviendelangle Nov 20, 2024
2466fe5
Fix
flaviendelangle Nov 21, 2024
cca2a37
Fix
flaviendelangle Nov 21, 2024
745524d
Merge
flaviendelangle Nov 22, 2024
18b3087
Merge branch 'tvalue' into v8-value-manager
flaviendelangle Nov 22, 2024
04657b1
Merge
flaviendelangle Nov 22, 2024
01fd0cb
Merge branch 'master' into tvalue
flaviendelangle Nov 25, 2024
f941b8e
Merge branch 'tvalue' into v8-value-manager
flaviendelangle Nov 25, 2024
a1a048d
Fix
flaviendelangle Nov 25, 2024
6acfe09
Merge
flaviendelangle Nov 25, 2024
b86cfc0
Fix
flaviendelangle Nov 25, 2024
8b742d8
Merge
flaviendelangle Nov 26, 2024
43b1180
Merge
flaviendelangle Nov 26, 2024
a6c60c3
Merge branch 'v8-value-manager' into use-managert-for-multi-input-ran…
flaviendelangle Nov 26, 2024
e47e9fd
Update docs/data/migration/migration-pickers-v7/migration-pickers-v7.md
flaviendelangle Nov 28, 2024
4452039
Merge branch 'master' into tvalue
flaviendelangle Nov 28, 2024
e5406e7
Fix
flaviendelangle Nov 28, 2024
2823188
Merge branch 'master' into tvalue
flaviendelangle Nov 28, 2024
f653f35
Merge branch 'tvalue' into v8-value-manager
flaviendelangle Nov 28, 2024
4efb66d
Merge
flaviendelangle Nov 28, 2024
45ec78d
Merge branch 'master' into v8-value-manager
flaviendelangle Nov 28, 2024
0d7063a
Merge branch 'master' into v8-value-manager
flaviendelangle Nov 28, 2024
00b9085
Merge branch 'master' into v8-value-manager
flaviendelangle Dec 4, 2024
317cbcf
Merge remote-tracking branch 'origin/v8-value-manager' into v8-value-…
flaviendelangle Dec 4, 2024
fb5d76a
Merge
flaviendelangle Dec 4, 2024
fd2637f
Work
flaviendelangle Dec 4, 2024
33ff5bd
Fix CI
flaviendelangle Dec 4, 2024
141bc7b
Work
flaviendelangle Dec 4, 2024
d945591
Work
flaviendelangle Dec 4, 2024
95fff46
Fix
flaviendelangle Dec 4, 2024
bca78fa
Fix
flaviendelangle Dec 4, 2024
b74367c
Work
flaviendelangle Dec 4, 2024
314b084
Work
flaviendelangle Dec 4, 2024
206b96b
Work on doc multi input examples
flaviendelangle Dec 4, 2024
c57bd09
Fix
flaviendelangle Dec 4, 2024
4192ee3
Merge branch 'master' into use-managert-for-multi-input-range-picker
flaviendelangle Dec 4, 2024
bc5a2d4
Work
flaviendelangle Dec 4, 2024
ca36470
Merge branch 'master' into v8-value-manager
flaviendelangle Dec 4, 2024
03bdcb0
Merge branch 'v8-value-manager' into use-managert-for-multi-input-ran…
flaviendelangle Dec 4, 2024
392a906
Work
flaviendelangle Dec 5, 2024
9973be5
Work
flaviendelangle Dec 5, 2024
5c4f636
Merge branch 'master' into use-managert-for-multi-input-range-picker
flaviendelangle Dec 5, 2024
e281a09
Work
flaviendelangle Dec 5, 2024
5ace66e
Fix
flaviendelangle Dec 5, 2024
f7ab06b
Fix
flaviendelangle Dec 5, 2024
9c98c1e
Fix
flaviendelangle Dec 5, 2024
4adc5c9
Fix
flaviendelangle Dec 5, 2024
2cf885b
Fix tests
flaviendelangle Dec 5, 2024
6f7c7f3
Merge branch 'master' into v8-value-manager
flaviendelangle Dec 9, 2024
d1039ff
Merge branch 'v8-value-manager' into use-managert-for-multi-input-ran…
flaviendelangle Dec 9, 2024
f1527a1
Fix
flaviendelangle Dec 9, 2024
a2ebfed
Merge branch 'master' into v8-value-manager
flaviendelangle Dec 13, 2024
1904587
Merge branch 'v8-value-manager' into use-managert-for-multi-input-ran…
flaviendelangle Dec 13, 2024
3230e1d
Merge
flaviendelangle Dec 19, 2024
8efb2ce
Merge branch 'v8-value-manager' into use-managert-for-multi-input-ran…
flaviendelangle Dec 19, 2024
4d63e80
Merge
flaviendelangle Dec 30, 2024
e8303e9
Merge
flaviendelangle Dec 30, 2024
245c08f
Merge branch 'master' into v8-value-manager
flaviendelangle Dec 31, 2024
9aa4af7
Merge
flaviendelangle Dec 31, 2024
de8daed
Merge
flaviendelangle Dec 31, 2024
e002b5d
Merge
flaviendelangle Dec 31, 2024
79c03d6
Merge
flaviendelangle Dec 31, 2024
f197ce6
Merge branch 'master' into use-managert-for-multi-input-range-picker
flaviendelangle Dec 31, 2024
6302799
Merge branch 'master' into use-managert-for-multi-input-range-picker
flaviendelangle Jan 2, 2025
552d4a9
Change the approach
flaviendelangle Jan 3, 2025
7ea3bbf
Work
flaviendelangle Jan 3, 2025
96ef4b3
Work
flaviendelangle Jan 3, 2025
3945121
Work
flaviendelangle Jan 3, 2025
076f2d8
Fix
flaviendelangle Jan 3, 2025
612bd88
Fix
flaviendelangle Jan 3, 2025
c024190
Fix
flaviendelangle Jan 3, 2025
c40d198
Revert test changes
flaviendelangle Jan 3, 2025
5862c49
Revert test changes
flaviendelangle Jan 3, 2025
963271c
Revert changes
flaviendelangle Jan 3, 2025
b9cd954
Add migration guide
flaviendelangle Jan 3, 2025
aba3fd4
Fix
flaviendelangle Jan 3, 2025
f21f874
Mergeg
flaviendelangle Jan 10, 2025
e3629be
Fix
flaviendelangle Jan 10, 2025
b04de7b
Merge branch 'master' into use-managert-for-multi-input-range-picker
flaviendelangle Jan 10, 2025
83af35e
Merge branch 'master' into use-managert-for-multi-input-range-picker
flaviendelangle Jan 10, 2025
70fdc9b
Merge
flaviendelangle Jan 14, 2025
0ae04a6
Update docs/data/migration/migration-pickers-v7/migration-pickers-v7.md
flaviendelangle Jan 15, 2025
9d9a488
Update docs/data/migration/migration-pickers-v7/migration-pickers-v7.md
flaviendelangle Jan 15, 2025
4c38c14
Update docs/data/migration/migration-pickers-v7/migration-pickers-v7.md
flaviendelangle Jan 15, 2025
be00d3b
Update packages/x-date-pickers-pro/src/internals/utils/createMultiInp…
flaviendelangle Jan 15, 2025
29be344
Merge branch 'master' into use-managert-for-multi-input-range-picker
flaviendelangle Jan 15, 2025
d80c40d
Review: Lukas
flaviendelangle Jan 15, 2025
a7654f2
Merge remote-tracking branch 'origin/use-managert-for-multi-input-ran…
flaviendelangle Jan 15, 2025
f860cc9
Move autoFocus to the field internal props
flaviendelangle Jan 15, 2025
bbac1c1
Update packages/x-date-pickers/src/hooks/useSplitFieldProps.ts
flaviendelangle Jan 15, 2025
84ba6e9
Merge branch 'master' into use-managert-for-multi-input-range-picker
flaviendelangle Jan 15, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@ import { styled } from '@mui/material/styles';
import Stack from '@mui/material/Stack';
import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
import { DateRangePicker } from '@mui/x-date-pickers-pro/DateRangePicker';
import { unstable_useMultiInputDateRangeField as useMultiInputDateRangeField } from '@mui/x-date-pickers-pro/MultiInputDateRangeField';
import { useDateRangeManager } from '@mui/x-date-pickers-pro/managers';
import { unstable_useMultiInputRangeField as useMultiInputRangeField } from '@mui/x-date-pickers-pro/hooks';
import { Unstable_PickersSectionList as PickersSectionList } from '@mui/x-date-pickers/PickersSectionList';

const BrowserFieldRoot = styled('div', { name: 'BrowserField', slot: 'Root' })({
Expand Down Expand Up @@ -78,18 +80,9 @@ const BrowserTextField = React.forwardRef((props, ref) => {
});

const BrowserMultiInputDateRangeField = React.forwardRef((props, ref) => {
const {
slotProps,
readOnly,
shouldDisableDate,
minDate,
maxDate,
disableFuture,
disablePast,
className,
unstableStartFieldRef,
unstableEndFieldRef,
} = props;
const manager = useDateRangeManager();
const { internalProps, forwardedProps } = useSplitFieldProps(props, 'date');
const { slotProps, ownerState, ...otherForwardedProps } = forwardedProps;

const startTextFieldProps = useSlotProps({
elementType: 'input',
Expand All @@ -103,48 +96,24 @@ const BrowserMultiInputDateRangeField = React.forwardRef((props, ref) => {
ownerState: { position: 'end' },
});

const fieldResponse = useMultiInputDateRangeField({
sharedProps: {
readOnly,
shouldDisableDate,
minDate,
maxDate,
disableFuture,
disablePast,
enableAccessibleFieldDOMStructure: true,
},
startTextFieldProps,
endTextFieldProps,
unstableStartFieldRef,
unstableEndFieldRef,
const fieldResponse = useMultiInputRangeField({
manager,
internalProps,
startForwardedProps: startTextFieldProps,
endForwardedProps: endTextFieldProps,
});

const {
// The multi input range field do not support clearable and onClear
onClear: onClearStartDate,
clearable: isStartDateClearable,
openPickerAriaLabel: openPickerStartDateAriaLabel,
...startDateProps
} = fieldResponse.startDate;
const {
// The multi input range field do not support clearable and onClear
onClear: onClearEndDate,
clearable: isEndDateClearable,
openPickerAriaLabel: openPickerEndDateAriaLabel,
...endDateProps
} = fieldResponse.endDate;

return (
<Stack
ref={ref}
spacing={2}
direction="row"
overflow="auto"
className={className}
{...otherForwardedProps}
>
<BrowserTextField {...startDateProps} />
<span></span>
<BrowserTextField {...endDateProps} />
<BrowserTextField {...fieldResponse.startDate} />
<span></span>
<BrowserTextField {...fieldResponse.endDate} />
</Stack>
);
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,14 @@ import { styled } from '@mui/material/styles';
import Stack from '@mui/material/Stack';
import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
import {
DateRangePicker,
DateRangePickerFieldProps,
DateRangePickerProps,
} from '@mui/x-date-pickers-pro/DateRangePicker';
import { unstable_useMultiInputDateRangeField as useMultiInputDateRangeField } from '@mui/x-date-pickers-pro/MultiInputDateRangeField';
import { useDateRangeManager } from '@mui/x-date-pickers-pro/managers';
import { unstable_useMultiInputRangeField as useMultiInputRangeField } from '@mui/x-date-pickers-pro/hooks';
import { Unstable_PickersSectionList as PickersSectionList } from '@mui/x-date-pickers/PickersSectionList';
import {
MultiInputFieldSlotTextFieldProps,
Expand Down Expand Up @@ -118,18 +120,9 @@ type BrowserMultiInputDateRangeFieldComponent = ((

const BrowserMultiInputDateRangeField = React.forwardRef(
(props: BrowserMultiInputDateRangeFieldProps, ref: React.Ref<HTMLDivElement>) => {
const {
slotProps,
readOnly,
shouldDisableDate,
minDate,
maxDate,
disableFuture,
disablePast,
className,
unstableStartFieldRef,
unstableEndFieldRef,
} = props;
const manager = useDateRangeManager();
const { internalProps, forwardedProps } = useSplitFieldProps(props, 'date');
const { slotProps, ownerState, ...otherForwardedProps } = forwardedProps;

const startTextFieldProps = useSlotProps({
elementType: 'input',
Expand All @@ -143,51 +136,24 @@ const BrowserMultiInputDateRangeField = React.forwardRef(
ownerState: { position: 'end' } as any,
}) as MultiInputFieldSlotTextFieldProps;

const fieldResponse = useMultiInputDateRangeField<
true,
MultiInputFieldSlotTextFieldProps
>({
sharedProps: {
readOnly,
shouldDisableDate,
minDate,
maxDate,
disableFuture,
disablePast,
enableAccessibleFieldDOMStructure: true,
},
startTextFieldProps,
endTextFieldProps,
unstableStartFieldRef,
unstableEndFieldRef,
const fieldResponse = useMultiInputRangeField({
manager,
internalProps,
startForwardedProps: startTextFieldProps,
endForwardedProps: endTextFieldProps,
});

const {
// The multi input range field do not support clearable and onClear
onClear: onClearStartDate,
clearable: isStartDateClearable,
openPickerAriaLabel: openPickerStartDateAriaLabel,
...startDateProps
} = fieldResponse.startDate;
const {
// The multi input range field do not support clearable and onClear
onClear: onClearEndDate,
clearable: isEndDateClearable,
openPickerAriaLabel: openPickerEndDateAriaLabel,
...endDateProps
} = fieldResponse.endDate;

return (
<Stack
ref={ref}
spacing={2}
direction="row"
overflow="auto"
className={className}
{...otherForwardedProps}
>
<BrowserTextField {...startDateProps} />
<span></span>
<BrowserTextField {...endDateProps} />
<BrowserTextField {...(fieldResponse.startDate as BrowserTextFieldProps)} />
<span></span>
<BrowserTextField {...(fieldResponse.endDate as BrowserTextFieldProps)} />
</Stack>
);
},
Expand Down
112 changes: 29 additions & 83 deletions docs/data/date-pickers/custom-field/JoyV6MultiInputRangeField.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import useSlotProps from '@mui/utils/useSlotProps';
import {
extendTheme as extendJoyTheme,
useColorScheme,
styled,
CssVarsProvider,
THEME_ID,
} from '@mui/joy/styles';
Expand All @@ -18,9 +17,11 @@ import FormControl from '@mui/joy/FormControl';
import FormLabel from '@mui/joy/FormLabel';
import Typography from '@mui/joy/Typography';
import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
import { DateRangePicker } from '@mui/x-date-pickers-pro/DateRangePicker';
import { unstable_useMultiInputDateRangeField as useMultiInputDateRangeField } from '@mui/x-date-pickers-pro/MultiInputDateRangeField';
import { useDateRangeManager } from '@mui/x-date-pickers-pro/managers';
import { unstable_useMultiInputRangeField as useMultiInputRangeField } from '@mui/x-date-pickers-pro/hooks';

const joyTheme = extendJoyTheme();

Expand Down Expand Up @@ -68,102 +69,47 @@ const JoyField = React.forwardRef((props, ref) => {
);
});

const MultiInputJoyDateRangeFieldRoot = styled(
React.forwardRef((props, ref) => (
<Stack
ref={ref}
spacing={2}
direction="row"
alignItems="center"
overflow="auto"
{...props}
/>
)),
{
name: 'MuiMultiInputDateRangeField',
slot: 'Root',
overridesResolver: (props, styles) => styles.root,
},
)({});

const MultiInputJoyDateRangeFieldSeparator = styled(
(props) => (
<FormControl>
{/* Ensure that the separator is correctly aligned */}
<span />
<Typography {...props}>{props.children ?? ' – '}</Typography>
</FormControl>
),
{
name: 'MuiMultiInputDateRangeField',
slot: 'Separator',
overridesResolver: (props, styles) => styles.separator,
},
)({ marginTop: '25px' });

const JoyMultiInputDateRangeField = React.forwardRef((props, ref) => {
const {
slotProps,
readOnly,
shouldDisableDate,
minDate,
maxDate,
disableFuture,
disablePast,
className,
unstableStartFieldRef,
unstableEndFieldRef,
} = props;
const manager = useDateRangeManager({
enableAccessibleFieldDOMStructure: false,
});
const { internalProps, forwardedProps } = useSplitFieldProps(props, 'date');
const { slotProps, ownerState, ...otherForwardedProps } = forwardedProps;

const startTextFieldProps = useSlotProps({
elementType: FormControl,
elementType: 'input',
externalSlotProps: slotProps?.textField,
ownerState: { position: 'start' },
});

const endTextFieldProps = useSlotProps({
elementType: FormControl,
elementType: 'input',
externalSlotProps: slotProps?.textField,
ownerState: { position: 'end' },
});

const fieldResponse = useMultiInputDateRangeField({
sharedProps: {
readOnly,
shouldDisableDate,
minDate,
maxDate,
disableFuture,
disablePast,
enableAccessibleFieldDOMStructure: false,
},
startTextFieldProps,
endTextFieldProps,
unstableStartFieldRef,
unstableEndFieldRef,
const fieldResponse = useMultiInputRangeField({
manager,
internalProps: { ...internalProps, enableAccessibleFieldDOMStructure: false },
startForwardedProps: startTextFieldProps,
endForwardedProps: endTextFieldProps,
});

const {
// The multi input range field do not support clearable, onClear and openPickerAriaLabel
onClear: onClearStartDate,
clearable: isStartDateClearable,
openPickerAriaLabel: openPickerStartDateAriaLabel,
...startDateProps
} = fieldResponse.startDate;
const {
// The multi input range field do not support clearable, onClear and openPickerAriaLabel
onClear: onClearEndDate,
clearable: isEndDateClearable,
openPickerAriaLabel: openPickerEndDateAriaLabel,
...endDateProps
} = fieldResponse.endDate;

return (
<MultiInputJoyDateRangeFieldRoot ref={ref} className={className}>
<JoyField {...startDateProps} />
<MultiInputJoyDateRangeFieldSeparator />
<JoyField {...endDateProps} />
</MultiInputJoyDateRangeFieldRoot>
<Stack
ref={ref}
spacing={2}
overflow="auto"
direction="row"
alignItems="center"
{...otherForwardedProps}
>
<JoyField {...fieldResponse.startDate} />
<FormControl>
<Typography sx={{ marginTop: '25px' }}>{' – '}</Typography>
</FormControl>
<JoyField {...fieldResponse.endDate} />
</Stack>
);
});

Expand Down
Loading
Loading