diff --git a/src/app/api/image/[id]/route.ts b/src/app/api/image/[id]/route.ts
index 5dff221..83d3ce6 100644
--- a/src/app/api/image/[id]/route.ts
+++ b/src/app/api/image/[id]/route.ts
@@ -14,27 +14,21 @@ try {
prisma = null;
}
-interface Params {
- params: {
- id: string;
- };
-}
+export async function GET(request: Request) {
+ // Next.js 15 이후 params 가 Promise 로 전달되는 경고를 피하기 위해,
+ // 동적 세그먼트는 request.url 의 path 에서 직접 파싱한다.
+ let id: string | undefined;
-export async function GET(request: Request, ctx: Params) {
- // Next.js 가 params 를 항상 보장하지 않는 상황을 대비해, URL 경로에서 id 를 보완적으로 파싱한다.
- let id: string | undefined = ctx?.params?.id;
- if (!id) {
- try {
- const url = new URL(request.url);
- const segments = url.pathname.split("/").filter(Boolean);
- // [..., "api", "image", ":id"] 형태를 기대한다.
- const last = segments[segments.length - 1];
- if (last && last !== "image") {
- id = last;
- }
- } catch {
- // URL 파싱 실패 시에는 그대로 둔다.
+ try {
+ const url = new URL(request.url);
+ const segments = url.pathname.split("/").filter(Boolean);
+ // [..., "api", "image", ":id"] 형태를 기대한다.
+ const last = segments[segments.length - 1];
+ if (last && last !== "image") {
+ id = last;
}
+ } catch {
+ // URL 파싱 실패 시에는 그대로 둔다.
}
if (!id) {
diff --git a/src/app/editor/forms/FormControllerPanel.tsx b/src/app/editor/forms/FormControllerPanel.tsx
index a3d5996..970c058 100644
--- a/src/app/editor/forms/FormControllerPanel.tsx
+++ b/src/app/editor/forms/FormControllerPanel.tsx
@@ -1,6 +1,7 @@
"use client";
import type { Block, ButtonBlockProps, FormBlockProps } from "@/features/editor/state/editorStore";
+import { NumericPropertyControl } from "@/features/editor/components/NumericPropertyControl";
interface FormControllerPanelProps {
block: Block; // type === "form"
@@ -129,6 +130,65 @@ export function FormControllerPanel({ block, blocks, selectedBlockId, updateBloc
)}
+
+
폼 레이아웃
+
+ {(formProps.formWidthMode ?? "auto") === "fixed" && (
+
+ updateBlock(selectedBlockId, {
+ formWidthPx: v,
+ } as any)
+ }
+ />
+ )}
+
+ updateBlock(selectedBlockId, {
+ marginYPx: v,
+ } as any)
+ }
+ />
+
+
폼 메시지