fix(web): withPayload for build, admin redirects to home
Some checks failed
CI / Lint (push) Has been cancelled
CI / Typecheck (push) Has been cancelled
CI / Broker tests (Postgres) (push) Has been cancelled
CI / Docker build (linux/amd64) (push) Has been cancelled

Keep withPayload (needed for build compilation) but replace the
admin RootPage with a redirect. The RootPage's ConfigProvider
causes React #130 in standalone output. Blog/changelog use
server-side getPayload() which works fine.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Alejandro Gutiérrez
2026-04-06 02:26:13 +01:00
parent 59ce33f943
commit 78c80cc43c
2 changed files with 10 additions and 19 deletions

View File

@@ -1,12 +1,9 @@
import type { NextConfig } from "next";
import env from "./env.config";
// eslint-disable-next-line @typescript-eslint/no-require-imports
const { withPayload } = require("@payloadcms/next/withPayload");
// withPayload is disabled until Payload admin runs correctly in
// Next.js standalone output. The wrapper injects a client-side
// provider that crashes with React #130 on all routes when the
// admin panel can't initialize. Blog + changelog use Payload's
// local API (server-side getPayload()) which works without the wrapper.
import env from "./env.config";
const INTERNAL_PACKAGES = [
"@turbostarter/analytics-web",
@@ -121,4 +118,4 @@ const withBundleAnalyzer = require("@next/bundle-analyzer")({
enabled: env.ANALYZE,
});
export default withBundleAnalyzer(config);
export default withPayload(withBundleAnalyzer(config));

View File

@@ -1,14 +1,8 @@
/* eslint-disable */
// @ts-nocheck — Payload generates these types at build time
import { RootPage, generatePageMetadata } from "@payloadcms/next/views";
import { importMap } from "../importMap";
import config from "@payload-config";
import { redirect } from "next/navigation";
type Args = { params: Promise<{ segments: string[] }> };
export const generateMetadata = ({ params }: Args) =>
generatePageMetadata({ config, params });
export default function Page({ params }: Args) {
return <RootPage config={config} params={params} importMap={importMap} />;
// Payload admin panel disabled in production (standalone output
// doesn't support Payload's server init). Content managed via
// local dev server or API.
export default function PayloadAdminRedirect() {
redirect("/");
}