From abd8762b5c184f768f6492bdfd60a8a249740979 Mon Sep 17 00:00:00 2001 From: gahusb Date: Fri, 1 May 2026 10:31:37 +0900 Subject: [PATCH] =?UTF-8?q?feat(subscription):=20=ED=94=84=EB=A1=9C?= =?UTF-8?q?=ED=95=84=20=EC=99=84=EC=84=B1=EB=8F=84=20=ED=9E=8C=ED=8A=B8=20?= =?UTF-8?q?=EB=B0=B0=EB=84=88=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 소득·면적·예산·자치구 티어 중 미입력 항목이 있으면 프로필 패널 상단에 입력 권장 안내 배너 표시. Co-Authored-By: Claude Sonnet 4.6 --- src/pages/subscription/Subscription.css | 15 +++++++++++++++ src/pages/subscription/Subscription.jsx | 20 ++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/src/pages/subscription/Subscription.css b/src/pages/subscription/Subscription.css index 8282168..21c1f60 100644 --- a/src/pages/subscription/Subscription.css +++ b/src/pages/subscription/Subscription.css @@ -1085,6 +1085,21 @@ line-height: 1.4; } +.sub-profile-hint { + display: flex; + align-items: flex-start; + gap: 8px; + padding: 10px 14px; + background: color-mix(in srgb, var(--accent-cyan) 8%, transparent); + border: 1px solid color-mix(in srgb, var(--accent-cyan) 25%, transparent); + border-radius: var(--radius-sm); + font-size: 12px; + color: var(--text-muted); + line-height: 1.5; + margin: 0 16px 4px; +} +.sub-profile-hint__icon { flex-shrink: 0; font-size: 14px; } + .sub-form-input { background: var(--bg-tertiary); border: 1px solid var(--line); diff --git a/src/pages/subscription/Subscription.jsx b/src/pages/subscription/Subscription.jsx index b800220..1dfa2c9 100644 --- a/src/pages/subscription/Subscription.jsx +++ b/src/pages/subscription/Subscription.jsx @@ -1243,6 +1243,26 @@ function ProfileTab() { + {/* 프로필 완성도 힌트 */} + {(() => { + const missing = []; + if (!profile.income_level) missing.push('소득 수준'); + if (!profile.min_area || !profile.max_area) missing.push('희망 면적'); + if (!profile.max_price) missing.push('최대 예산'); + const hasDistricts = profile.preferred_districts && + Object.values(profile.preferred_districts).some(arr => arr?.length > 0); + if (!hasDistricts) missing.push('자치구 티어'); + if (missing.length === 0) return null; + return ( +
+ 💡 + + 매칭 정확도 개선 가능 — {missing.join(', ')} 입력 시 더 정확한 점수를 산출합니다. + +
+ ); + })()} +
{/* 기본 정보 */}