import { useState } from "react"; import { motion, AnimatePresence } from "framer-motion"; import { STAFF } from "@/data/event-data"; import { Instagram, User, ChevronLeft, ChevronRight } from "lucide-react"; import { useTranslation } from "react-i18next"; /** Colores de badge por rol */ const roleBadgeClass: Record = { Instructor: "bg-primary text-primary-foreground", DJ: "bg-secondary text-secondary-foreground", Organizador: "bg-accent text-accent-foreground", }; const StaffSection = () => { const { t } = useTranslation(); const [filter, setFilter] = useState<"all" | "instructors" | "djs">("all"); const filteredStaff = STAFF.filter((member) => { if (filter === "all") return true; if (filter === "instructors") return member.role === "Instructor"; if (filter === "djs") return member.role === "DJ"; return true; }); // simple ref + helpers for horizontal scroll const onPrev = () => { const scroller = document.getElementById("staff-scroller"); if (!scroller) return; const card = scroller.querySelector("[data-staff-card]") as HTMLElement | null; const delta = card ? card.offsetWidth + 24 : 320; // 24 ~ gap-x-6 scroller.scrollBy({ left: -delta, behavior: "smooth" }); }; const onNext = () => { const scroller = document.getElementById("staff-scroller"); if (!scroller) return; const card = scroller.querySelector("[data-staff-card]") as HTMLElement | null; const delta = card ? card.offsetWidth + 24 : 320; scroller.scrollBy({ left: delta, behavior: "smooth" }); }; return (

{t("staff.title")}

{t("staff.description")}

{/* Arrows (desktop) */}
{/* Filters */} {( [ { id: "all", labelKey: "staff.filters.all" }, { id: "instructors", labelKey: "staff.filters.instructors" }, { id: "djs", labelKey: "staff.filters.djs" }, ] as const ).map(({ id, labelKey }) => ( ))} {/* Carousel scroller */}
{/* gradient edges */}
{filteredStaff.map((member, i) => ( {/* Foto */}
{member.image ? ( {member.name} ) : ( )}
{/* Badge de rol */} {(() => { const roleLabelKey = member.role === "Instructor" ? "instructor" : member.role === "DJ" ? "dj" : member.role === "Organizador" ? "organizer" : undefined; return roleLabelKey ? t(`staff.${roleLabelKey}`) : member.role; })()}

{member.name}

{member.description?.trim().startsWith("[") && member.description?.trim().endsWith("]") ? t("staff.placeholder") : member.description}

{/* Redes sociales */} {member.socials?.instagram && ( {t("staff.socials.instagram")} )}
))}
{/* Arrows (mobile overlay) */}
); }; export default StaffSection;