UNPKG

@atlaskit/calendar

Version:

An interactive calendar for date selection experiences.

77 lines (76 loc) 2.97 kB
import _slicedToArray from "@babel/runtime/helpers/slicedToArray"; import useControlled from '@atlaskit/ds-lib/use-controlled'; import useLazyRef from '@atlaskit/ds-lib/use-lazy-ref'; import pad from '../utils/pad'; // eslint-disable-next-line @repo/internal/react/require-jsdoc export default 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 = useLazyRef(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 = useControlled(day, function () { return defaultDay || thisDay; }), _useControlled2 = _slicedToArray(_useControlled, 2), dayValue = _useControlled2[0], setDayValue = _useControlled2[1]; var _useControlled3 = useControlled(month, function () { return defaultMonth || thisMonth; }), _useControlled4 = _slicedToArray(_useControlled3, 2), monthValue = _useControlled4[0], setMonthValue = _useControlled4[1]; var _useControlled5 = useControlled(year, function () { return defaultYear || thisYear; }), _useControlled6 = _slicedToArray(_useControlled5, 2), yearValue = _useControlled6[0], setYearValue = _useControlled6[1]; var _useControlled7 = useControlled(today, function () { return today || "".concat(thisYear, "-").concat(pad(thisMonth), "-").concat(pad(thisDay)); }), _useControlled8 = _slicedToArray(_useControlled7, 1), todayValue = _useControlled8[0]; var _useControlled9 = useControlled(selected, function () { return defaultSelected; }), _useControlled0 = _slicedToArray(_useControlled9, 2), selectedValue = _useControlled0[0], setSelectedValue = _useControlled0[1]; var _useControlled1 = useControlled(previouslySelected, function () { return defaultPreviouslySelected; }), _useControlled10 = _slicedToArray(_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] }; }