reorganize some event queries, types and components

This commit is contained in:
2024-05-12 00:01:12 +02:00
parent bc9fbd5d84
commit a6fcaa1579
8 changed files with 154 additions and 122 deletions

View File

@ -0,0 +1,49 @@
"use client";
import styles from "./eventContainer.module.scss";
import { EventItem } from "./EventItem";
import { EventFilter } from "./EventFilter";
import { EventFragment } from "@/gql/graphql";
import { getSingularEvents } from "@/lib/event";
import { useState } from "react";
type EventContainerMode = "list" | "calendar";
export const EventContainer = ({ events }: { events: EventFragment[] }) => {
const [mode, setMode] = useState<EventContainerMode>("list");
return (
<div className={styles.events}>
<EventFilter />
<div className={styles.eventWrapper}>
<div className={styles.displayOptions}>
<button onClick={() => setMode("list")}>Vis liste</button>
<button onClick={() => setMode("calendar")}>Vis kalender</button>
</div>
{mode === "list" && <EventList events={events} />}
{mode === "calendar" && <EventCalendar events={events} />}
</div>
</div>
);
};
const EventList = ({ events }: { events: EventFragment[] }) => {
return (
<ul className={styles.eventList}>
{events.map((event) => (
<EventItem key={event.id} event={event} />
))}
</ul>
);
};
const EventCalendar = ({ events }: { events: EventFragment[] }) => {
const singularEvents = getSingularEvents(events);
return (
<ul className={styles.eventList}>
{events.map((event) => (
<EventItem key={event.id} event={event} />
))}
</ul>
);
};