import { GetChronologyItemsQuery } from "graphql/operations-types"; export type ChronologyItemComponentProps = { item: GetChronologyItemsQuery["chronologyItems"]["data"][number]; displayYear: boolean; }; export default function ChronologyItemComponent( props: ChronologyItemComponentProps ): JSX.Element { function generateAnchor(year: number, month: number, day: number): string { let result: string = ""; result += year; if (month) result += "-" + month.toString().padStart(2, "0"); if (day) result += "-" + day.toString().padStart(2, "0"); return result; } function generateYear(displayed_date: string, year: number): string { if (displayed_date) { return displayed_date; } else { return year.toString(); } } function generateDate(month: number, day: number): string { let lut = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", ]; let result: string = ""; if (month) { result += lut[month - 1]; if (day) { result += " " + day; } } return result; } return (
{props.displayYear ? (

{generateYear( props.item.attributes.displayed_date, props.item.attributes.year )}

) : ( "" )}

{generateDate(props.item.attributes.month, props.item.attributes.day)}

{props.item.attributes.events.map((event) => (
{event.translations.map((translation) => ( <> {translation.title ?

{translation.title}

: ""} {translation.description ? (

1 ? "before:content-['-'] before:text-dark before:inline-block before:w-4 before:ml-[-1em] mt-2 whitespace-pre-line" : "whitespace-pre-line" } > {translation.description}

) : ( "" )} {translation.note ? ( {"Notes: " + translation.note} ) : ( "" )} ))}

{event.source.data ? "(" + event.source.data.attributes.name + ")" : "(WARNING: NO SOURCE!)"}

))}
); }