"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.useBaseDateInRange = void 0;
const addMonths_1 = require("@astral/utils/date/addMonths");
const react_1 = require("react");
const date_1 = require("../../../utils/date");
/**
 * хук который выдаст нам опорную дату, которая будет в пределах от минимальной, до максимальной, пригодится, когда текущая дата меньше минимальной, или больше максимальной.
 */
const useBaseDateInRange = ({ minDate, maxDate, monthOffset = 0, initialDate, }) => (0, react_1.useMemo)(() => {
    const currentDate = (0, addMonths_1.addMonths)(initialDate || new Date(), monthOffset);
    const baseDate = (0, date_1.buildIsoDate)({
        year: currentDate.getUTCFullYear(),
        month: currentDate.getUTCMonth() + 1,
        day: currentDate.getUTCDate(),
        hour: currentDate.getUTCHours(),
    });
    if (Number(baseDate) < Number(minDate)) {
        return minDate;
    }
    if (Number(baseDate) > Number(maxDate)) {
        return maxDate;
    }
    return baseDate;
}, [initialDate, minDate, maxDate, monthOffset]);
exports.useBaseDateInRange = useBaseDateInRange;
