From d8be6d6d95386336b7850319daf40c5725979ee2 Mon Sep 17 00:00:00 2001 From: dmitriylaukhin Date: Sat, 25 Apr 2026 13:36:04 +0500 Subject: [PATCH] Fix Prisma 7 JSON proxy serialization in RSC props Prisma 7 wraps Json fields in proxy objects that RSC cannot serialize. Fix: select specific columns (exclude content) in module page, and JSON.parse/stringify lesson content before passing to client. Co-Authored-By: Claude Sonnet 4.6 --- .../modules/[moduleId]/lessons/[lessonId]/page.tsx | 2 +- src/app/admin/courses/[courseId]/modules/[moduleId]/page.tsx | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/app/admin/courses/[courseId]/modules/[moduleId]/lessons/[lessonId]/page.tsx b/src/app/admin/courses/[courseId]/modules/[moduleId]/lessons/[lessonId]/page.tsx index abde314..560fd42 100644 --- a/src/app/admin/courses/[courseId]/modules/[moduleId]/lessons/[lessonId]/page.tsx +++ b/src/app/admin/courses/[courseId]/modules/[moduleId]/lessons/[lessonId]/page.tsx @@ -55,7 +55,7 @@ export default async function LessonEditorPage({ params }: Props) { id: lesson.id, title: lesson.title, kinescopeId: lesson.kinescopeId ?? "", - content: (lesson.content as object) ?? {}, + content: JSON.parse(JSON.stringify(lesson.content ?? {})), published: lesson.published, }} courseId={courseId} diff --git a/src/app/admin/courses/[courseId]/modules/[moduleId]/page.tsx b/src/app/admin/courses/[courseId]/modules/[moduleId]/page.tsx index f943ebc..1f635d0 100644 --- a/src/app/admin/courses/[courseId]/modules/[moduleId]/page.tsx +++ b/src/app/admin/courses/[courseId]/modules/[moduleId]/page.tsx @@ -15,7 +15,10 @@ export default async function ModulePage({ params }: Props) { where: { id: moduleId }, include: { course: { select: { title: true } }, - lessons: { orderBy: { order: "asc" } }, + lessons: { + orderBy: { order: "asc" }, + select: { id: true, title: true, order: true, published: true, kinescopeId: true }, + }, }, }), prisma.module.findMany({