simplify some type checks by fixing graphql schema

This commit is contained in:
2024-05-14 21:36:05 +02:00
parent ba93e7e783
commit fa3ebdb91c
7 changed files with 69 additions and 222 deletions

View File

@ -1,6 +1,6 @@
"use client";
import { useQueryState, parseAsStringLiteral } from "nuqs";
import { useQueryState, parseAsStringLiteral, parseAsString } from "nuqs";
import { EventItem } from "./EventItem";
import { EventFilter } from "./EventFilter";
import {
@ -32,22 +32,12 @@ export const EventContainer = ({
);
const filterableCategories = eventCategories.filter((x) => x.showInFilters);
const filterableCategorySlugs: string[] = filterableCategories
.filter((x) => "slug" in x && typeof x.slug === "string")
.map((x) => x.slug);
const [category, setCategory] = useQueryState(
"category",
parseAsStringLiteral(filterableCategorySlugs).withDefault(null)
);
const [category, setCategory] = useQueryState("category", parseAsString);
const filteredEvents = events.filter(
(x) =>
!category ||
x.categories
?.filter((x) => x !== null)
.map((eventCategory: EventCategory) => eventCategory.slug)
.includes(category)
x.categories.map((eventCategory) => eventCategory.slug).includes(category)
);
return (