From 67a1db3cb9a7761543eb2bbc1632ddf7f898666b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=84=B1=EA=B2=BD?= Date: Mon, 14 Sep 2026 17:12:30 +0900 Subject: [PATCH] =?UTF-8?q?feat(frontend):=20=EC=BA=94=EB=B2=84=EC=8A=A4?= =?UTF-8?q?=20=EC=86=8C=EA=B0=9C=20=EC=9A=94=EC=95=BD=EA=B0=92=20=EB=B0=B0?= =?UTF-8?q?=EC=84=A0(placeAdapter,=20common)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit factField()가 FactData.summary를 InfoField.summary로 옮기고, common.ts에 introSummary()를 추가한다. 아직 어느 변형도 이 값을 쓰지 않는다 — IntroSideBySide/IntroStory 연결은 다음 커밋. --- .../src/features/builder/canvas/variants/common.ts | 9 +++++++++ solution/frontend/src/features/builder/placeAdapter.ts | 2 ++ 2 files changed, 11 insertions(+) diff --git a/solution/frontend/src/features/builder/canvas/variants/common.ts b/solution/frontend/src/features/builder/canvas/variants/common.ts index ab27dd4..8e50472 100644 --- a/solution/frontend/src/features/builder/canvas/variants/common.ts +++ b/solution/frontend/src/features/builder/canvas/variants/common.ts @@ -44,6 +44,15 @@ export function introParagraph(_industryId: IndustryType, infoFields: InfoField[ return collected?.value?.trim() ?? ''; } +/** + * 소개 문구 축약본. `intro`/`room_intro` fact 가 길 때만 백엔드가 채워 보낸다(요청·응답에만 + * 실리고 DB 에는 남지 않는다). 없으면 빈 값 — 부르는 쪽이 원문(introParagraph)으로 떨어진다. + */ +export function introSummary(_industryId: IndustryType, infoFields: InfoField[]): string { + const collected = infoFields.find((f) => f.id === 'intro' || f.id === 'room_intro'); + return collected?.summary?.trim() ?? ''; +} + /** * 이용 규정으로 읽히는 fact 들. 순서가 곧 화면 순서다. * diff --git a/solution/frontend/src/features/builder/placeAdapter.ts b/solution/frontend/src/features/builder/placeAdapter.ts index f313a46..611cf48 100644 --- a/solution/frontend/src/features/builder/placeAdapter.ts +++ b/solution/frontend/src/features/builder/placeAdapter.ts @@ -155,6 +155,8 @@ function factField(fact: FactData, spec?: FieldSpecData): InfoField { isVerified: publishable, source: factSource(fact), critical: spec?.critical, + // 캔버스 미리보기용 축약문(intro/room_intro 가 길 때만 백엔드가 채워 보낸다). + summary: fact.summary?.trim() || undefined, }; }