Replace Jotai atoms with local state, add Suspense for PPR compatibility

- Delete filterable-row, backup-schedule, integrations, and system-health
  atom files; replace with useState/useTransition + server action calls
- Replace /api/explore/discover route with discoverByGenre server action;
  refactor FilterableTitleRow to call it directly via useTransition
- Wrap PagesLayout and AuthLayout children in Suspense to fix dynamic
  rendering errors during PPR static generation; remove StoreProvider
- Sequence ExplorePage session fetch before TMDB calls to prevent
  build-time requests during static generation
- Drop unnecessary "use client" directives from dashboard and person
  components that have no client-side hooks or browser API usage
- Improve Dockerfile: add bun install layer cache mount, copy
  .next/cache from builder, reorder ENV declarations
This commit is contained in:
2026-03-07 16:00:19 -05:00
parent 8a45aa1c36
commit 7ed172d675
34 changed files with 530 additions and 664 deletions
+4 -6
View File
@@ -1,18 +1,16 @@
import type { NextConfig } from "next";
const imageBaseUrl = process.env.TMDB_IMAGE_BASE_URL || "";
const imageHost = imageBaseUrl
? new URL(imageBaseUrl).hostname
: "image.tmdb.org";
const nextConfig: NextConfig = {
output: "standalone",
reactCompiler: true,
cacheComponents: true,
images: {
remotePatterns: [
{
protocol: "https",
hostname: imageHost,
hostname: process.env.TMDB_IMAGE_BASE_URL
? new URL(process.env.TMDB_IMAGE_BASE_URL).hostname
: "image.tmdb.org",
},
],
},