diff --git a/src/helpers.tsx b/src/helpers.tsx index 752e6eb..373b25b 100644 --- a/src/helpers.tsx +++ b/src/helpers.tsx @@ -174,3 +174,30 @@ export function usePromiseMemo(promise: Promise | undefined | null, deps: }, [...deps, promise]); return val; } + +export function parseDate(prop: ICAL.Property) { + const value = prop.getFirstValue(); + if ((value.day !== null) && (value.day !== undefined)) { + return { + day: value.day, + month: value.month - 1, + year: value.year ?? undefined, + }; + } else { + const time = prop.toJSON()[3]; + if (time.length === 6 && time.startsWith("--")) { + return { + day: parseInt(time.slice(4, 6)), + month: parseInt(time.slice(2, 4)) - 1, + }; + } else if (time.length === 8) { + return { + day: parseInt(time.slice(6, 8)), + month: parseInt(time.slice(4, 6)) - 1, + year: parseInt(time.slice(0, 4)), + }; + } + } + + return {}; +}