import { useState } from 'react' import { events } from '@/data/events' import type { EventType } from '@/data/events' import { useLang } from '@/context/LangContext' type FilterValue = 'all' | EventType const TYPE_BORDER_COLORS: Record = { conference: 'var(--ink)', exhibition: '#6b4a00', seminar: '#1a4a2a', international: 'var(--red)', } const TYPE_LABELS = { fa: { conference: 'کنگره', exhibition: 'نمایشگاه', seminar: 'سمینار', international: 'جهانی' }, en: { conference: 'Conference', exhibition: 'Exhibition', seminar: 'Seminar', international: 'International' }, } const FILTERS = { fa: [ { label: 'همه', value: 'all' as FilterValue }, { label: 'کنگره', value: 'conference' as FilterValue }, { label: 'نمایشگاه', value: 'exhibition' as FilterValue }, { label: 'سمینار', value: 'seminar' as FilterValue }, { label: 'جهانی', value: 'international' as FilterValue }, ], en: [ { label: 'All', value: 'all' as FilterValue }, { label: 'Conference', value: 'conference' as FilterValue }, { label: 'Exhibition', value: 'exhibition' as FilterValue }, { label: 'Seminar', value: 'seminar' as FilterValue }, { label: 'International', value: 'international' as FilterValue }, ], } const T = { fa: { heading: 'رویدادهای پیش‌رو', year: '۱۴۰۳–۱۴۰۴', empty: 'رویدادی در این دسته‌بندی یافت نشد' }, en: { heading: 'Upcoming Events', year: '1403–1404', empty: 'No events found in this category' }, } function EventCard({ event, lang }: { event: (typeof events)[0]; lang: 'fa' | 'en' }) { const [hovered, setHovered] = useState(false) const borderColor = TYPE_BORDER_COLORS[event.type] const typeLabels = TYPE_LABELS[lang] return (
setHovered(true)} onMouseLeave={() => setHovered(false)} >
{event.date.toLocaleString(lang === 'fa' ? 'fa-IR' : 'en-US')} {event.month} {event.year.toLocaleString(lang === 'fa' ? 'fa-IR' : 'en-US')}
{typeLabels[event.type]}

{event.title}

{event.location}، {event.city}

{event.description}

{event.registrationOpen ? ( {lang === 'fa' ? 'ثبت‌نام' : 'Register'} ) : ( {lang === 'fa' ? 'به‌زودی' : 'Coming Soon'} )}
) } export default function Events() { const { lang } = useLang() const t = T[lang] const filters = FILTERS[lang] const [activeFilter, setActiveFilter] = useState('all') const filtered = activeFilter === 'all' ? events : events.filter(e => e.type === activeFilter) return (

{t.heading}

{t.year}
{filters.map(f => { const isActive = activeFilter === f.value return ( ) })}
{filtered.map(event => )} {filtered.length % 2 !== 0 &&
}
{filtered.length === 0 && (

{t.empty}

)}
) }