tdesign-react
Version:
TDesign Component for React
117 lines (113 loc) • 3.75 kB
JavaScript
/**
* tdesign v1.15.1
* (c) 2025 tdesign
* @license MIT
*/
import { _ as _slicedToArray } from '../../_chunks/dep-48805ab8.js';
import { useState, useEffect } from 'react';
import { g as getDefaultFormat, e as extractTimeFormat, b as isValidDate, i as initYearMonthTime, f as formatDate, a as formatTime } from '../../_chunks/dep-9036728c.js';
import '../../_chunks/dep-f53c91cd.js';
import useControlled from '../../hooks/useControlled.js';
import { l as log } from '../../_chunks/dep-b908e1fe.js';
import '../../_chunks/dep-026a4c6b.js';
import 'lodash-es';
import 'dayjs';
import '../../_chunks/dep-e29214cb.js';
import '../../_chunks/dep-dbf3be07.js';
import '../../_util/noop.js';
var PARTIAL_MAP = {
first: "start",
second: "end"
};
function useRange(props) {
var _useControlled = useControlled(props, "value", props.onChange),
_useControlled2 = _slicedToArray(_useControlled, 2),
value = _useControlled2[0],
onChange = _useControlled2[1];
var _getDefaultFormat = getDefaultFormat({
mode: props.mode,
format: props.format,
enableTimePicker: props.enableTimePicker
}),
format = _getDefaultFormat.format,
timeFormat = _getDefaultFormat.timeFormat;
if (props.enableTimePicker) {
if (!extractTimeFormat(format)) log.error("DatePicker", "format: ".concat(format, " is invalid\uFF0Ctime selection must include time formatting HH:mm:ss"));
}
if (!Array.isArray(value)) {
log.error("DatePicker", "typeof value: ".concat(value, " must be Array!"));
} else if (!isValidDate(value, format)) {
log.error("DatePicker", "value: ".concat(value, " is invalid dateTime! Check whether the value is consistent with format: ").concat(format));
}
var _useState = useState(false),
_useState2 = _slicedToArray(_useState, 2),
isFirstValueSelected = _useState2[0],
setIsFirstValueSelected = _useState2[1];
var _useState3 = useState(function () {
return initYearMonthTime({
value: value,
mode: props.mode,
format: format,
enableTimePicker: props.enableTimePicker
}).time;
}),
_useState4 = _slicedToArray(_useState3, 2),
time = _useState4[0],
setTime = _useState4[1];
var _useState5 = useState(function () {
return initYearMonthTime({
value: value,
mode: props.mode,
format: format,
enableTimePicker: props.enableTimePicker
}).month;
}),
_useState6 = _slicedToArray(_useState5, 2),
month = _useState6[0],
setMonth = _useState6[1];
var _useState7 = useState(function () {
return initYearMonthTime({
value: value,
mode: props.mode,
format: format
}).year;
}),
_useState8 = _slicedToArray(_useState7, 2),
year = _useState8[0],
setYear = _useState8[1];
var _useState9 = useState(function () {
return formatDate(value, {
format: format
});
}),
_useState0 = _slicedToArray(_useState9, 2),
cacheValue = _useState0[0],
setCacheValue = _useState0[1];
useEffect(function () {
if (!value) {
setCacheValue([]);
return;
}
if (!isValidDate(value, format)) return;
setCacheValue(formatDate(value, {
format: format
}));
setTime(formatTime(value, format, timeFormat, props.defaultTime));
}, [value]);
return {
value: value,
onChange: onChange,
year: year,
setYear: setYear,
month: month,
setMonth: setMonth,
time: time,
setTime: setTime,
isFirstValueSelected: isFirstValueSelected,
setIsFirstValueSelected: setIsFirstValueSelected,
cacheValue: cacheValue,
setCacheValue: setCacheValue
};
}
export { PARTIAL_MAP, useRange as default };
//# sourceMappingURL=useRangeValue.js.map