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 ( +