Files
canvasManagement/src/features/local/utils/settingsUtils.tsx
2025-07-23 09:54:11 -06:00

51 lines
1.2 KiB
TypeScript

import {
getDateFromStringOrThrow,
getDateOnlyMarkdownString,
} from "./timeUtils";
export const parseHolidays = (
inputText: string
): {
name: string;
days: string[];
}[] => {
let holidays: {
name: string;
days: string[];
}[] = [];
const lines = inputText.split("\n").filter((line) => line.trim() !== "");
let currentHoliday: string | null = null;
lines.forEach((line) => {
if (line.includes(":")) {
const holidayName = line.split(":")[0].trim();
currentHoliday = holidayName;
holidays = [...holidays, { name: holidayName, days: [] }];
} else if (currentHoliday && line.startsWith("-")) {
const date = line.replace("-", "").trim();
const dateObject = getDateFromStringOrThrow(date, "parsing holiday text");
const holiday = holidays.find((h) => h.name == currentHoliday);
holiday?.days.push(getDateOnlyMarkdownString(dateObject));
}
});
return holidays;
};
export const holidaysToString = (
holidays: {
name: string;
days: string[];
}[]
) => {
const entries = holidays.map((holiday) => {
const title = holiday.name + ":\n";
const days = holiday.days.map((d) => `- ${d}\n`);
return title + days.join("");
});
return entries.join("");
};