@churchapps/apphelper
Version:
Library of helper functions for React and NextJS ChurchApps
39 lines • 1.35 kB
JavaScript
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