···3030 TextCursorInput,
3131 Type,
3232} from "lucide-react";
3333-import Link from "next/link";
3433import { useRouter } from "next/navigation";
35343635import {
···4241 type FormMetadataDraft,
4342} from "@/components/form-builder-panels";
4443import { useI18n } from "@/components/i18n-provider";
4545-import { Badge } from "@/components/ui/badge";
4644import { Button } from "@/components/ui/button";
4745import { ConfirmDialog } from "@/components/ui/confirm-dialog";
4846import { ToastViewport, type ToastData } from "@/components/ui/toast";
···11+import { PrismaPg } from "@prisma/adapter-pg";
12import { PrismaClient } from "@prisma/client";
2344+const connectionString = process.env.DATABASE_URL;
55+66+if (!connectionString) {
77+ throw new Error("DATABASE_URL is not set");
88+}
99+310const globalForPrisma = globalThis as unknown as {
411 prisma?: PrismaClient;
512};
···714export const db =
815 globalForPrisma.prisma ??
916 new PrismaClient({
1717+ adapter: new PrismaPg({ connectionString }),
1018 log: process.env.NODE_ENV === "development" ? ["warn", "error"] : ["error"],
1119 });
1220
-1
lib/forms.ts
···2222 serializeBlock,
2323 type BlockConfig,
2424 type ChoiceBlockConfig,
2525- type LinkBlockConfig,
2625 type NumberBlockConfig,
2726 type SerializedBlock,
2827 type TextAnswerBlockConfig,