fix some type errors

This commit is contained in:
2024-05-14 19:07:41 +02:00
parent 8c6c58b62f
commit 08b2e5387d
6 changed files with 189 additions and 42 deletions

View File

@ -5,7 +5,7 @@ import { EventItem } from "./EventItem";
import { EventFilter } from "./EventFilter";
import {
EventFragment,
EventCategoryFragment,
EventCategory,
SingularEvent,
getSingularEvents,
organizeEventsByDate,
@ -24,7 +24,7 @@ export const EventContainer = ({
eventCategories,
}: {
events: EventFragment[];
eventCategories: EventCategoryFragment[];
eventCategories: EventCategory[];
}) => {
const [mode, setMode] = useQueryState(
"mode",
@ -32,18 +32,21 @@ 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(filterableCategories.map((x) => x.slug)).withDefault(
null
)
parseAsStringLiteral(filterableCategorySlugs).withDefault(null)
);
const filteredEvents = events.filter(
(x) =>
!category ||
x.categories
?.map((eventCategory) => eventCategory.slug)
?.filter((x) => x !== null)
.map((eventCategory: EventCategory) => eventCategory.slug)
.includes(category)
);

View File

@ -1,4 +1,4 @@
import { EventFragment } from "@/gql/graphql";
import { EventCategory, EventFragment } from "@/lib/event";
import styles from "./eventHeader.module.scss";
import Image from "@/components/general/Image";
import { Pig } from "../general/Pig";
@ -16,7 +16,11 @@ export const EventHeader = ({ event }: { event: EventFragment }) => {
<div>Medlemspris: {event.priceMember}</div>
<div>
Kategorier:{" "}
{event.categories && event.categories.map((x) => x.name).join(", ")}
{event.categories &&
event.categories
.filter((x) => x != null)
.map((x: EventCategoryFragment) => x.name)
.join(", ")}
</div>
</div>
</div>

View File

@ -6,9 +6,9 @@ export const NewsList = ({
featured,
limit,
}: {
heading: string;
featured: boolean;
limit: number;
heading?: string;
featured?: boolean;
limit?: number;
}) => {
return (
<section className={styles.newsWrapper}>