From 1ab4e41c0048987cab09623b8ca049d273d84202 Mon Sep 17 00:00:00 2001 From: Jeffrey Date: Thu, 19 Feb 2026 19:55:08 +0100 Subject: [PATCH] fix: cast SEO plugin fields override as Field[] to resolve --- src/app/(frontend)/layout.tsx | 35 +- src/blocks/RenderBlocks.tsx | 8 - src/collections/Posts/index.ts | 26 +- .../AnnouncementBar/AnnouncementBar.tsx | 37 +- src/components/HeadInjection.tsx | 99 +- src/globals/AnnouncementBar.ts | 53 +- src/globals/PopupAnnouncement/Component.tsx | 74 +- src/globals/PopupAnnouncement/config.ts | 71 +- src/globals/SiteSettings.ts | 8 + .../hooks/revalidateAnnouncementBar.ts | 7 + src/globals/hooks/revalidateSiteSettings.ts | 7 + src/migrations/20260219_175400.json | 23103 ++++++++++++ src/migrations/20260219_175400.ts | 51 + src/migrations/20260219_184333.json | 31255 ++++++++++++++++ src/migrations/20260219_184333.ts | 1982 + src/migrations/index.ts | 14 +- src/payload-types.ts | 150 +- src/payload.config.ts | 8 + src/plugins/index.ts | 31 +- tsconfig.tsbuildinfo | 2 +- 20 files changed, 56844 insertions(+), 177 deletions(-) create mode 100644 src/globals/hooks/revalidateAnnouncementBar.ts create mode 100644 src/globals/hooks/revalidateSiteSettings.ts create mode 100644 src/migrations/20260219_175400.json create mode 100644 src/migrations/20260219_175400.ts create mode 100644 src/migrations/20260219_184333.json create mode 100644 src/migrations/20260219_184333.ts diff --git a/src/app/(frontend)/layout.tsx b/src/app/(frontend)/layout.tsx index ea697f4..8186f14 100644 --- a/src/app/(frontend)/layout.tsx +++ b/src/app/(frontend)/layout.tsx @@ -1,6 +1,4 @@ import type { Metadata } from 'next' -import { getPayload } from 'payload' -import config from '@payload-config' import { AnnouncementBarComponent } from '@/components/AnnouncementBar/AnnouncementBar' import { cn } from '@/utilities/ui' import { GeistMono } from 'geist/font/mono' @@ -21,27 +19,14 @@ import { PopupAnnouncementComponent } from '@/globals/PopupAnnouncement/Componen import './globals.css' import { getServerSideURL } from '@/utilities/getURL' -async function AnnouncementBarWrapper() { - const payload = await getPayload({ config }) - const announcement = await payload.findGlobal({ slug: 'announcement-bar' }) - if (!announcement?.enabled) return null - return ( - - ) -} - export default async function RootLayout({ children }: { children: React.ReactNode }) { const { isEnabled } = await draftMode() - const [siteSettings, popupData] = await Promise.all([ + // All three globals fetched once via the ISR cache — no direct DB hits downstream + const [siteSettings, popupData, announcement] = await Promise.all([ getCachedGlobal('site-settings', 1)() as any, getCachedGlobal('popup-announcement', 1)() as any, + getCachedGlobal('announcement-bar', 1)() as any, ]) const cc = siteSettings?.cookieConsent @@ -66,12 +51,20 @@ export default async function RootLayout({ children }: { children: React.ReactNo - + - + {announcement?.enabled && ( + + )}
{children}