import { useState } from 'react' import { useStore } from '../store' import { useT } from '../i18n' import type { Anniversary } from '@shared/types' /** 기념일(앱 전체 공통) 등록/삭제. 해당 날짜 사진을 Anniversaries/이름/연도 폴더에 모음 */ export function AnniversaryManager(): JSX.Element { const t = useT() const anniversaries = useStore((s) => s.anniversaries) const updateSettings = useStore((s) => s.updateSettings) const [label, setLabel] = useState('') const [date, setDate] = useState('') // YYYY-MM-DD const add = async () => { const l = label.trim() if (!l || !date) return const item: Anniversary = { id: crypto.randomUUID(), label: l, date: date.slice(5) } // MM-DD await updateSettings({ anniversaries: [...anniversaries, item] }) setLabel('') setDate('') } const remove = async (id: string) => { await updateSettings({ anniversaries: anniversaries.filter((a) => a.id !== id) }) } // MM-DD → 보기용 "MM.DD" const fmt = (mmdd: string): string => mmdd.replace('-', '.') return (

🎉 {t('anniv.section')}

{t('anniv.hint')}

setLabel(e.target.value)} onKeyDown={(e) => e.key === 'Enter' && add()} /> setDate(e.target.value)} />
{anniversaries.length === 0 ? (

{t('anniv.empty')}

) : (
{anniversaries.map((a) => (
{a.label} {fmt(a.date)}
))}
)}
) }