put event container mode state in url

This commit is contained in:
2024-05-13 02:30:22 +02:00
parent aac89edca1
commit 0bf6e00a81
3 changed files with 24 additions and 5 deletions

View File

@ -1,6 +1,6 @@
"use client";
import { useState } from "react";
import { useQueryState, parseAsStringLiteral } from "nuqs";
import { EventItem } from "./EventItem";
import { EventFilter } from "./EventFilter";
import {
@ -16,14 +16,16 @@ import { getYear, parse } from "date-fns";
type EventContainerMode = "list" | "calendar";
export const EventContainer = ({ events }: { events: EventFragment[] }) => {
const [mode, setMode] = useState<EventContainerMode>("list");
const [mode, setMode] = useQueryState(
"mode",
parseAsStringLiteral(["list", "calendar"]).withDefault("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(null)}>Vis liste</button>
<button onClick={() => setMode("calendar")}>Vis kalender</button>
</div>
{mode === "list" && <EventList events={events} />}
@ -34,7 +36,6 @@ export const EventContainer = ({ events }: { events: EventFragment[] }) => {
};
const EventList = ({ events }: { events: EventFragment[] }) => {
console.log('events', events)
return (
<ul className={styles.eventList}>
{events.map((event) => (