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

This commit is contained in:
2026-05-19 18:37:58 +02:00
parent a5ebb897f1
commit e960da6f1c
31 changed files with 582 additions and 591 deletions
+17 -6
View File
@@ -1,14 +1,25 @@
import { getClient } from "@/app/client";
import { PageHeader } from "@/components/general/PageHeader";
import { NewsList } from "@/components/news/NewsList";
import { NewsFragment, NewsIndexFragment } from "@/lib/news";
import { NewsFragment, NewsIndexFragment, newsQuery } from "@/lib/news";
export function NewsIndexView({
index,
news,
}: {
export type NewsIndexViewProps = {
index: NewsIndexFragment;
news: NewsFragment[];
}) {
};
export async function loadNewsIndexProps(overrides?: {
indexOverride?: NewsIndexFragment;
}): Promise<NewsIndexViewProps> {
const { data, error } = await getClient().query(newsQuery, {});
if (error) throw new Error(error.message);
const index = overrides?.indexOverride ?? (data?.index as NewsIndexFragment | undefined);
if (!index) throw new Error("Failed to load /aktuelt");
const news = (data?.news ?? []) as NewsFragment[];
return { index, news };
}
export function NewsIndexView({ index, news }: NewsIndexViewProps) {
return (
<main className="site-main" id="main">
<PageHeader heading={index.title} lead={index.lead} align="left" />