simplify some type checks by fixing graphql schema
This commit is contained in:
@ -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 (
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { EventCategoryFragment } from "@/lib/event";
|
||||
import { EventCategory } from "@/lib/event";
|
||||
|
||||
import styles from "./eventFilter.module.scss";
|
||||
|
||||
@ -7,9 +7,9 @@ export const EventFilter = ({
|
||||
setCategory,
|
||||
activeCategory,
|
||||
}: {
|
||||
eventCategories: EventCategoryFragment[];
|
||||
setCategory: (slug: string) => void;
|
||||
activeCategory?: string;
|
||||
eventCategories: EventCategory[];
|
||||
setCategory: (slug: string | null) => void;
|
||||
activeCategory: string | null;
|
||||
}) => {
|
||||
return (
|
||||
<div className={styles.eventFilter}>
|
||||
|
@ -16,11 +16,7 @@ export const EventHeader = ({ event }: { event: EventFragment }) => {
|
||||
<div>Medlemspris: {event.priceMember}</div>
|
||||
<div>
|
||||
Kategorier:{" "}
|
||||
{event.categories &&
|
||||
event.categories
|
||||
.filter((x) => x != null)
|
||||
.map((x: EventCategoryFragment) => x.name)
|
||||
.join(", ")}
|
||||
{event.categories && event.categories.map((x) => x.name).join(", ")}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
Reference in New Issue
Block a user