UNPKG

@drivy/cobalt

Version:

Opinionated design system for Drivy's projects.

32 lines (29 loc) 1.21 kB
import setISODay from 'date-fns/setISODay'; import startOfMonth from 'date-fns/startOfMonth'; import getDay from 'date-fns/getDay'; import endOfMonth from 'date-fns/endOfMonth'; import eachDayOfInterval from 'date-fns/eachDayOfInterval'; 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 (index === 0 || (index + firstDayOfMonthOffset) % 7 === 0) { acc.push([]); } acc[acc.length - 1].push(day); return acc; }, []); }; export { getMonthDaysByWeeks, getWeekDays }; //# sourceMappingURL=utils.js.map