Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | 15x 6x 42x 15x 1x 1x 1x 1x 6x | import { addDays, differenceInCalendarWeeks, endOfMonth, eachWeekOfInterval, getWeek, addWeeks, subMonths, startOfWeek } from "date-fns" import { dayOffset } from "./day-offset" import { getDayMetaData } from "./get-day-meta-data" /** * * @param {Object} getDayMetaDataParams * @prop {Date} date * @prop {Date} tempEnd * @prop {Date[]} events * @prop {Date} month * @prop {boolean} singlePicker * @prop {Date} tempStart * @prop {Date} today * @prop {Date} maxDate * @prop {Date} minDate * @prop {Date[]} disabledDates * * @returns {Day} */ /** * * @param {Date} start * @param {getDayMetaDataParams} getDayMetaDataParams * * @returns {Date[]} */ const buildWeek = (start, getDayMetaDataParams) => [0, 1, 2, 3, 4, 5, 6].map((_, i) => getDayMetaData({ ...getDayMetaDataParams, date: addDays(start, i) }) ) /** * * @param {getDayMetaDataParams} getDayMetaDataParams * * @returns {Object[]} */ export const getCalendarWeeks = getDayMetaDataParams => { const { month, firstDayOfWeek, today } = getDayMetaDataParams const weekStartsOn = dayOffset(firstDayOfWeek) const start = startOfWeek(endOfMonth(subMonths(month, 1))) return eachWeekOfInterval( { start, end: addWeeks(start, 5) }, { weekStartsOn, locale: window.__locale__ } ).map(date => ({ weeksFromToday: differenceInCalendarWeeks(date, today, { weekStartsOn, locale: window.__locale__ }), weekNumber: getWeek(date, { weekStartsOn }), daysInWeek: buildWeek(date, getDayMetaDataParams) })) } |