Files
Iliyan Angelov 306b20e24a Frontend start
2025-09-14 00:54:48 +03:00

43 lines
1.6 KiB
JavaScript

import _extends from "@babel/runtime/helpers/esm/extends";
import { useThemeProps } from '@mui/material/styles';
import { Clock } from '../internals/components/icons';
import { useLocaleText, useUtils } from '../internals/hooks/useUtils';
import { parsePickerInputValue } from '../internals/utils/date-utils';
export function useTimePickerDefaultizedProps(props, name) {
// 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 themeProps = useThemeProps({
props,
name
});
const utils = useUtils();
const ampm = themeProps.ampm ?? utils.is12HourCycleInCurrentLocale();
const localeText = useLocaleText();
const getOpenDialogAriaText = localeText.openTimePickerDialogue;
return _extends({
ampm,
openTo: 'hours',
views: ['hours', 'minutes'],
acceptRegex: ampm ? /[\dapAP]/gi : /\d/gi,
disableMaskedInput: false,
getOpenDialogAriaText,
inputFormat: ampm ? utils.formats.fullTime12h : utils.formats.fullTime24h
}, themeProps, {
components: _extends({
OpenPickerIcon: Clock
}, themeProps.components)
});
}
export const timePickerValueManager = {
emptyValue: null,
parseInput: parsePickerInputValue,
getTodayValue: utils => utils.date(),
areValuesEqual: (utils, a, b) => utils.isEqual(a, b),
valueReducer: (utils, lastValidValue, newValue) => {
if (!lastValidValue || !utils.isValid(newValue)) {
return newValue;
}
return utils.mergeDateAndTime(lastValidValue, newValue);
}
};