UNPKG

@drivy/cobalt

Version:

Opinionated design system for Drivy's projects.

30 lines (29 loc) 1.19 kB
import eachDayOfInterval from "date-fns/eachDayOfInterval"; import endOfMonth from "date-fns/endOfMonth"; import getDay from "date-fns/getDay"; import setISODay from "date-fns/setISODay"; import startOfMonth from "date-fns/startOfMonth"; const getWeekDays = (isSundayFirstDayOfWeek = false)=>{ const extraIndex = isSundayFirstDayOfWeek ? 0 : 1; const now = new Date().setHours(0, 0, 0, 0); return [ ...Array(7).keys() ].map((index)=>setISODay(now, index + extraIndex)); }; const getMonthDaysByWeeks = (monthDate, isSundayFirstDayOfWeek = false)=>{ const extraOffset = isSundayFirstDayOfWeek ? 0 : 1; const firstDayOfMonth = startOfMonth(monthDate); const firstDayOfMonthOffset = getDay(firstDayOfMonth) - extraOffset; const lastDayOfMonth = endOfMonth(monthDate); const days = eachDayOfInterval({ start: firstDayOfMonth, end: lastDayOfMonth }); return days.reduce((acc, day, index)=>{ if (0 === index || (index + firstDayOfMonthOffset) % 7 === 0) acc.push([]); acc[acc.length - 1].push(day); return acc; }, []); }; export { getMonthDaysByWeeks, getWeekDays }; //# sourceMappingURL=utils.js.map