@mantine/dates
Version:
Calendars, date and time pickers based on Mantine components
49 lines (48 loc) • 1.99 kB
JavaScript
"use client";
const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
const require_get_formatted_date = require("../../utils/get-formatted-date/get-formatted-date.cjs");
const require_use_dates_context = require("../../components/DatesProvider/use-dates-context.cjs");
const require_use_uncontrolled_dates = require("../use-uncontrolled-dates/use-uncontrolled-dates.cjs");
let dayjs = require("dayjs");
dayjs = require_runtime.__toESM(dayjs);
let _mantine_hooks = require("@mantine/hooks");
//#region packages/@mantine/dates/src/hooks/use-dates-input/use-dates-input.ts
function useDatesInput({ type, value, defaultValue, onChange, locale, format, closeOnChange, sortDates, labelSeparator, valueFormatter }) {
const ctx = require_use_dates_context.useDatesContext();
const [dropdownOpened, dropdownHandlers] = (0, _mantine_hooks.useDisclosure)(false);
const [_value, _setValue] = require_use_uncontrolled_dates.useUncontrolledDates({
type,
value,
defaultValue,
onChange
});
const formattedValue = require_get_formatted_date.getFormattedDate({
type,
date: _value,
locale: ctx.getLocale(locale),
format,
labelSeparator: ctx.getLabelSeparator(labelSeparator),
formatter: valueFormatter
});
const setValue = (val) => {
if (closeOnChange) {
if (type === "default") dropdownHandlers.close();
if (type === "range" && val[0] && val[1]) dropdownHandlers.close();
}
if (sortDates && type === "multiple") _setValue([...val].sort((a, b) => (0, dayjs.default)(a).isAfter((0, dayjs.default)(b)) ? 1 : -1));
else _setValue(val);
};
const onClear = () => setValue(type === "range" ? [null, null] : type === "multiple" ? [] : null);
return {
_value,
setValue,
onClear,
shouldClear: type === "range" ? !!_value[0] : type === "multiple" ? _value.length > 0 : _value !== null,
formattedValue,
dropdownOpened,
dropdownHandlers
};
}
//#endregion
exports.useDatesInput = useDatesInput;
//# sourceMappingURL=use-dates-input.cjs.map