- public/assets/images/logo.png + public/brand/logo*.png replaced with the 1320x310 AV Beat logo
- public/assets/logos/avbeat.png added as the canonical source
- tailwind.config.js + src/styles/tailwind.css + src/styles/redesign-tokens.css palette swapped (primary #0F0E0E, secondary #1D1A1A, accent #E67E22 orange, foreground #F0EBE6 warm white)
- Layout / robots / sitemap / home-page / about / contact / press-kit / team / global-error metadata switched to AV Beat (Where AV Meets IT)
- Bulk replaced 'Broadcast Beat'/'BroadcastBeat.com'/'broadcastbeat.com' across user-facing news/forum/marketplace/advertise/search/newsletter pages
- src/lib/supabase/{admin,server,client} now default to schema 'avb' (was 'bb') — overridable via NEXT_PUBLIC_SUPABASE_SCHEMA
- package.json renamed to 'avbeat'
- Single d60701 reference in about/team swapped to E67E22
Design-only replica — no article content migrated.
24 lines
794 B
TypeScript
24 lines
794 B
TypeScript
import type { Metadata } from "next";
|
|
import { Suspense } from "react";
|
|
import NewsPageClient from "./NewsPageClient";
|
|
import { getLegacyArticlesBySection } from "@/lib/articles/legacy-source";
|
|
|
|
export const revalidate = 1800;
|
|
|
|
export const metadata: Metadata = {
|
|
title: "Industry News — AV Beat",
|
|
description:
|
|
"Breaking news and industry updates from the world of broadcast engineering, IP/cloud workflows, streaming, AI, and live production.",
|
|
alternates: { canonical: "/news" },
|
|
};
|
|
|
|
export default async function NewsPage() {
|
|
const articles = await getLegacyArticlesBySection("news", 200);
|
|
// Suspense boundary required because NewsPageClient uses useSearchParams.
|
|
return (
|
|
<Suspense fallback={null}>
|
|
<NewsPageClient articles={articles} />
|
|
</Suspense>
|
|
);
|
|
}
|