UNPKG

@atlaskit/calendar

Version:

An interactive calendar for date selection experiences.

83 lines (82 loc) • 3.5 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = useControlledDateState; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _useControlled11 = _interopRequireDefault(require("@atlaskit/ds-lib/use-controlled")); var _useLazyRef2 = _interopRequireDefault(require("@atlaskit/ds-lib/use-lazy-ref")); var _pad = _interopRequireDefault(require("../utils/pad")); // eslint-disable-next-line @repo/internal/react/require-jsdoc function useControlledDateState(_ref) { var day = _ref.day, defaultDay = _ref.defaultDay, month = _ref.month, defaultMonth = _ref.defaultMonth, year = _ref.year, defaultYear = _ref.defaultYear, today = _ref.today, selected = _ref.selected, defaultSelected = _ref.defaultSelected, previouslySelected = _ref.previouslySelected, defaultPreviouslySelected = _ref.defaultPreviouslySelected; var _useLazyRef = (0, _useLazyRef2.default)(function () { var now = new Date(); var thisDay = now.getDate(); var thisMonth = now.getMonth() + 1; var thisYear = now.getFullYear(); return { thisDay: thisDay, thisMonth: thisMonth, thisYear: thisYear }; }), _useLazyRef$current = _useLazyRef.current, thisDay = _useLazyRef$current.thisDay, thisMonth = _useLazyRef$current.thisMonth, thisYear = _useLazyRef$current.thisYear; var _useControlled = (0, _useControlled11.default)(day, function () { return defaultDay || thisDay; }), _useControlled2 = (0, _slicedToArray2.default)(_useControlled, 2), dayValue = _useControlled2[0], setDayValue = _useControlled2[1]; var _useControlled3 = (0, _useControlled11.default)(month, function () { return defaultMonth || thisMonth; }), _useControlled4 = (0, _slicedToArray2.default)(_useControlled3, 2), monthValue = _useControlled4[0], setMonthValue = _useControlled4[1]; var _useControlled5 = (0, _useControlled11.default)(year, function () { return defaultYear || thisYear; }), _useControlled6 = (0, _slicedToArray2.default)(_useControlled5, 2), yearValue = _useControlled6[0], setYearValue = _useControlled6[1]; var _useControlled7 = (0, _useControlled11.default)(today, function () { return today || "".concat(thisYear, "-").concat((0, _pad.default)(thisMonth), "-").concat((0, _pad.default)(thisDay)); }), _useControlled8 = (0, _slicedToArray2.default)(_useControlled7, 1), todayValue = _useControlled8[0]; var _useControlled9 = (0, _useControlled11.default)(selected, function () { return defaultSelected; }), _useControlled0 = (0, _slicedToArray2.default)(_useControlled9, 2), selectedValue = _useControlled0[0], setSelectedValue = _useControlled0[1]; var _useControlled1 = (0, _useControlled11.default)(previouslySelected, function () { return defaultPreviouslySelected; }), _useControlled10 = (0, _slicedToArray2.default)(_useControlled1, 2), previouslySelectedValue = _useControlled10[0], setPreviouslySelectedValue = _useControlled10[1]; return { day: [dayValue, setDayValue], month: [monthValue, setMonthValue], year: [yearValue, setYearValue], today: [todayValue], selected: [selectedValue, setSelectedValue], previous: [previouslySelectedValue, setPreviouslySelectedValue] }; }