Skip to content

Commit a81e05a

Browse files
LukasTyDungTiger
authored andcommitted
[DateTimeRangePicker] Resolve format from given views (mui#13743)
1 parent f053835 commit a81e05a

File tree

4 files changed

+14
-2
lines changed

4 files changed

+14
-2
lines changed

packages/x-date-pickers-pro/src/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import {
77
isInternalTimeView,
88
PickerViewRenderer,
99
PickerViewsRendererProps,
10+
resolveDateTimeFormat,
11+
useUtils,
1012
} from '@mui/x-date-pickers/internals';
1113
import { PickerValidDate } from '@mui/x-date-pickers/models';
1214
import { resolveComponentProps } from '@mui/base/utils';
@@ -138,6 +140,7 @@ const DesktopDateTimeRangePicker = React.forwardRef(function DesktopDateTimeRang
138140
inProps: DesktopDateTimeRangePickerProps<TDate, TEnableAccessibleFieldDOMStructure>,
139141
ref: React.Ref<HTMLDivElement>,
140142
) {
143+
const utils = useUtils<TDate>();
141144
// Props with the default values common to all date time range pickers
142145
const defaultizedProps = useDateTimeRangePickerDefaultizedProps<
143146
TDate,
@@ -170,6 +173,7 @@ const DesktopDateTimeRangePicker = React.forwardRef(function DesktopDateTimeRang
170173
...defaultizedProps,
171174
views,
172175
viewRenderers,
176+
format: resolveDateTimeFormat(utils, defaultizedProps),
173177
// force true to correctly handle `renderTimeViewClock` as a renderer
174178
ampmInClock: true,
175179
calendars: defaultizedProps.calendars ?? 1,

packages/x-date-pickers-pro/src/MobileDateTimeRangePicker/MobileDateTimeRangePicker.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import {
1111
DefaultizedProps,
1212
PickerViewsRendererProps,
1313
TimeViewWithMeridiem,
14+
resolveDateTimeFormat,
15+
useUtils,
1416
} from '@mui/x-date-pickers/internals';
1517
import { PickerValidDate } from '@mui/x-date-pickers/models';
1618
import { resolveComponentProps } from '@mui/base/utils';
@@ -147,6 +149,7 @@ const MobileDateTimeRangePicker = React.forwardRef(function MobileDateTimeRangeP
147149
inProps: MobileDateTimeRangePickerProps<TDate, TEnableAccessibleFieldDOMStructure>,
148150
ref: React.Ref<HTMLDivElement>,
149151
) {
152+
const utils = useUtils<TDate>();
150153
// Props with the default values common to all date time range pickers
151154
const defaultizedProps = useDateTimeRangePickerDefaultizedProps<
152155
TDate,
@@ -169,6 +172,7 @@ const MobileDateTimeRangePicker = React.forwardRef(function MobileDateTimeRangeP
169172
const props = {
170173
...defaultizedProps,
171174
viewRenderers,
175+
format: resolveDateTimeFormat(utils, defaultizedProps),
172176
// Force one calendar on mobile to avoid layout issues
173177
calendars: 1,
174178
// force true to correctly handle `renderTimeViewClock` as a renderer

packages/x-date-pickers/src/internals/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ export {
131131
mergeDateAndTime,
132132
formatMeridiem,
133133
} from './utils/date-utils';
134-
export { resolveTimeViewsResponse } from './utils/date-time-utils';
134+
export { resolveTimeViewsResponse, resolveDateTimeFormat } from './utils/date-time-utils';
135135
export { splitFieldInternalAndForwardedProps } from './utils/fields';
136136
export { getDefaultReferenceDate } from './utils/getDefaultReferenceDate';
137137
export {

packages/x-date-pickers/src/internals/utils/date-time-utils.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,11 @@ import { DefaultizedProps } from '../models/helpers';
1414

1515
export const resolveDateTimeFormat = <TDate extends PickerValidDate>(
1616
utils: MuiPickersAdapter<TDate>,
17-
{ views, format, ...other }: { format?: string; views: readonly DateOrTimeView[]; ampm: boolean },
17+
{
18+
views,
19+
format,
20+
...other
21+
}: { format?: string; views: readonly DateOrTimeViewWithMeridiem[]; ampm: boolean },
1822
) => {
1923
if (format) {
2024
return format;

0 commit comments

Comments
 (0)