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, }; }