diff --git a/app/work/saju/result/SajuAISection.tsx b/app/work/saju/result/SajuAISection.tsx index 4f357bb..ee1f482 100644 --- a/app/work/saju/result/SajuAISection.tsx +++ b/app/work/saju/result/SajuAISection.tsx @@ -4,6 +4,7 @@ import { useState, useEffect, useRef } from 'react'; import { usePathname, useSearchParams } from 'next/navigation'; import ReactMarkdown from 'react-markdown'; import remarkGfm from 'remark-gfm'; +import { SajuIcon, SECTION_ICON_ORDER } from './SajuIcons'; interface BirthKey { birth_year: number; @@ -30,26 +31,20 @@ interface SajuAISectionProps { }; } -// ── 섹션별 메타 (아이콘·색상) ────────────────────────────────────────── -const SECTION_META: { - icon: string; - gradient: string; - border: string; - badge: string; - badgeText: string; -}[] = [ - { icon: '🌟', gradient: 'from-violet-500 to-purple-600', border: 'border-violet-100', badge: 'bg-violet-50 border-violet-200 text-violet-700', badgeText: '기질' }, - { icon: '⚖️', gradient: 'from-emerald-500 to-teal-600', border: 'border-emerald-100', badge: 'bg-emerald-50 border-emerald-200 text-emerald-700', badgeText: '오행' }, - { icon: '🔗', gradient: 'from-blue-500 to-indigo-600', border: 'border-blue-100', badge: 'bg-blue-50 border-blue-200 text-blue-700', badgeText: '지지' }, - { icon: '✨', gradient: 'from-amber-500 to-orange-500', border: 'border-amber-100', badge: 'bg-amber-50 border-amber-200 text-amber-700', badgeText: '신살' }, - { icon: '💰', gradient: 'from-yellow-500 to-amber-600', border: 'border-yellow-100', badge: 'bg-yellow-50 border-yellow-200 text-yellow-700', badgeText: '재물' }, - { icon: '🎯', gradient: 'from-rose-500 to-pink-600', border: 'border-rose-100', badge: 'bg-rose-50 border-rose-200 text-rose-700', badgeText: '직업' }, - { icon: '💕', gradient: 'from-pink-500 to-rose-500', border: 'border-pink-100', badge: 'bg-pink-50 border-pink-200 text-pink-700', badgeText: '애정' }, - { icon: '🌿', gradient: 'from-green-500 to-emerald-600', border: 'border-green-100', badge: 'bg-green-50 border-green-200 text-green-700', badgeText: '건강' }, - { icon: '🗺️', gradient: 'from-cyan-500 to-blue-600', border: 'border-cyan-100', badge: 'bg-cyan-50 border-cyan-200 text-cyan-700', badgeText: '대운' }, - { icon: '📅', gradient: 'from-indigo-500 to-violet-600', border: 'border-indigo-100', badge: 'bg-indigo-50 border-indigo-200 text-indigo-700', badgeText: '세운' }, - { icon: '🏆', gradient: 'from-amber-400 to-yellow-500', border: 'border-amber-100', badge: 'bg-amber-50 border-amber-200 text-amber-700', badgeText: '황금기' }, - { icon: '💌', gradient: 'from-slate-600 to-slate-800', border: 'border-slate-100', badge: 'bg-slate-50 border-slate-200 text-slate-700', badgeText: '종합' }, +// ── 섹션별 메타 (뱃지 라벨) — 아이콘은 SECTION_ICON_ORDER에서 동일 인덱스로 조회 ── +const SECTION_META: { badgeText: string }[] = [ + { badgeText: '기질' }, + { badgeText: '오행' }, + { badgeText: '지지' }, + { badgeText: '신살' }, + { badgeText: '재물' }, + { badgeText: '직업' }, + { badgeText: '애정' }, + { badgeText: '건강' }, + { badgeText: '대운' }, + { badgeText: '세운' }, + { badgeText: '황금기' }, + { badgeText: '종합' }, ]; // ── 마크다운 → 섹션 파싱 ────────────────────────────────────────────── @@ -86,30 +81,31 @@ function parseInterpretation(text: string): ParsedSection[] { } // ── 섹션 카드 컴포넌트 ──────────────────────────────────────────────── -function SectionCard({ section, meta, isOpen, onToggle }: { +function SectionCard({ section, meta, iconName, isOpen, onToggle }: { section: ParsedSection; meta: typeof SECTION_META[0]; + iconName: (typeof SECTION_ICON_ORDER)[number]; isOpen: boolean; onToggle: () => void; }) { return ( -
+
{/* 헤더 */} @@ -452,6 +444,7 @@ export default function SajuAISection({ key={idx} section={section} meta={meta} + iconName={SECTION_ICON_ORDER[metaIdx]} isOpen={openSections.has(idx)} onToggle={() => toggleSection(idx)} />