44 lines
2.0 KiB
JavaScript
44 lines
2.0 KiB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
import * as React from 'react';
|
|
import { useThemeProps } from '@mui/material/styles';
|
|
import { useDefaultDates, useUtils } from '../internals/hooks/useUtils';
|
|
import { applyDefaultViewProps } from '../internals/utils/views';
|
|
import { applyDefaultDate } from '../internals/utils/date-utils';
|
|
import { DatePickerToolbar } from './DatePickerToolbar';
|
|
import { uncapitalizeObjectKeys } from '../internals/utils/slots-migration';
|
|
export function useDatePickerDefaultizedProps(props, name) {
|
|
var _themeProps$slots, _themeProps$disableFu, _themeProps$disablePa, _themeProps$slotProps;
|
|
const utils = useUtils();
|
|
const defaultDates = useDefaultDates();
|
|
const themeProps = useThemeProps({
|
|
props,
|
|
name
|
|
});
|
|
const localeText = React.useMemo(() => {
|
|
var _themeProps$localeTex;
|
|
if (((_themeProps$localeTex = themeProps.localeText) == null ? void 0 : _themeProps$localeTex.toolbarTitle) == null) {
|
|
return themeProps.localeText;
|
|
}
|
|
return _extends({}, themeProps.localeText, {
|
|
datePickerToolbarTitle: themeProps.localeText.toolbarTitle
|
|
});
|
|
}, [themeProps.localeText]);
|
|
const slots = (_themeProps$slots = themeProps.slots) != null ? _themeProps$slots : uncapitalizeObjectKeys(themeProps.components);
|
|
return _extends({}, themeProps, {
|
|
localeText
|
|
}, applyDefaultViewProps({
|
|
views: themeProps.views,
|
|
openTo: themeProps.openTo,
|
|
defaultViews: ['year', 'day'],
|
|
defaultOpenTo: 'day'
|
|
}), {
|
|
disableFuture: (_themeProps$disableFu = themeProps.disableFuture) != null ? _themeProps$disableFu : false,
|
|
disablePast: (_themeProps$disablePa = themeProps.disablePast) != null ? _themeProps$disablePa : false,
|
|
minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),
|
|
maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate),
|
|
slots: _extends({
|
|
toolbar: DatePickerToolbar
|
|
}, slots),
|
|
slotProps: (_themeProps$slotProps = themeProps.slotProps) != null ? _themeProps$slotProps : themeProps.componentsProps
|
|
});
|
|
} |