UNPKG

@churchapps/apphelper

Version:

Library of helper functions for React and NextJS ChurchApps

39 lines 1.35 kB
import { RRule } from "rrule"; export class EventHelper { } EventHelper.getRange = (event, startDate, endDate) => { const start = new Date(event.start); const rrule = EventHelper.getFullRRule(event); const dates = rrule.between(startDate, endDate); dates.forEach(d => { d.setHours(start.getHours()); d.setMinutes(start.getMinutes()); d.setSeconds(start.getSeconds()); }); return dates; }; EventHelper.getFullRRule = (event) => { let rrule = RRule.fromString(event.recurrenceRule); rrule.options.dtstart = new Date(event.start); return rrule; }; EventHelper.removeExcludeDates = (events) => { for (let i = events.length - 1; i >= 0; i--) { if (events[i].exceptionDates?.length > 0) { const parsedDates = events[i].exceptionDates.map(d => new Date(d).toISOString()); if (parsedDates.indexOf(events[i].start.toISOString()) > -1) events.splice(i, 1); } } }; EventHelper.getPartialRRuleString = (options) => { const parts = new RRule(options).toString().split("RRULE:"); const result = parts.length === 2 ? parts[1] : ""; return result; }; EventHelper.cleanRule = (options) => { options.byhour = undefined; options.byminute = undefined; options.bysecond = undefined; }; //# sourceMappingURL=EventHelper.js.map