+
{
+ if (e.key === "ArrowLeft") { e.preventDefault(); goPrev(); setPaused(true); }
+ if (e.key === "ArrowRight") { e.preventDefault(); goNext(); setPaused(true); }
+ }}
+ >
{/* Position indicator */}
-
+
{offset + 1}–{Math.min(offset + CARDS_PER_PAGE, rotatingStories?.length)}/{rotatingStories?.length}
diff --git a/src/app/news/page.tsx b/src/app/news/page.tsx
index 3c0918e..2247791 100644
--- a/src/app/news/page.tsx
+++ b/src/app/news/page.tsx
@@ -1,4 +1,5 @@
import type { Metadata } from "next";
+import { Suspense } from "react";
import NewsPageClient from "./NewsPageClient";
import { getLegacyArticlesBySection } from "@/lib/articles/legacy-source";
@@ -13,5 +14,10 @@ export const metadata: Metadata = {
export default async function NewsPage() {
const articles = await getLegacyArticlesBySection("news", 200);
- return
;
+ // Suspense boundary required because NewsPageClient uses useSearchParams.
+ return (
+
+
+
+ );
}
diff --git a/src/components/Header.tsx b/src/components/Header.tsx
index 89cb07e..66d1c7a 100644
--- a/src/components/Header.tsx
+++ b/src/components/Header.tsx
@@ -365,15 +365,6 @@ export default function Header() {