web: centralize prop fetching for live + preview, fix preview banner breakage

This commit is contained in:
ponas committed 2026-05-19 18:37:58 +02:00
1 parent a5ebb897f1
commit e960da6f1c
31 files changed
+582 -591

No files matched your search

+17 -6
View File
@@ -1,5 +1,6 @@
import { graphql } from "@/gql";
import { VenueFragment, VenueIndexFragment } from "@/gql/graphql";
import { getClient } from "@/app/client";
import { PageContent } from "@/components/general/PageContent";
import { PageHeader } from "@/components/general/PageHeader";
import { VenueList } from "@/components/venues/VenueList";
@@ -53,7 +54,7 @@ const VenueFragmentDefinition = graphql(`
}
`);
export const venueIndexQuery = graphql(`
const venueIndexQuery = graphql(`
query venueIndex {
index: venueIndex {
... on VenueIndex {
@@ -68,13 +69,23 @@ export const venueIndexQuery = graphql(`
}
`);
export function VenueIndexView({
index,
venues,
}: {
export type VenueIndexViewProps = {
index: VenueIndexFragment;
venues: VenueFragment[];
}) {
};
export async function loadVenueIndexProps(overrides?: {
indexOverride?: VenueIndexFragment;
}): Promise<VenueIndexViewProps> {
const { data, error } = await getClient().query(venueIndexQuery, {});
if (error) throw new Error(error.message);
const index = overrides?.indexOverride ?? (data?.index as VenueIndexFragment | undefined);
if (!index) throw new Error("Failed to load /lokaler");
const venues = (data?.venues ?? []) as VenueFragment[];
return { index, venues };
}
export function VenueIndexView({ index, venues }: VenueIndexViewProps) {
const visibleVenues = venues.filter((x) => x.showInOverview);
return (