"use client"; import { motion } from "motion/react"; export type ViewId = "arena" | "leaderboard" | "about"; const ITEMS: { id: ViewId; label: string }[] = [ { id: "arena", label: "Arena" }, { id: "leaderboard", label: "Leaderboard" }, { id: "about", label: "About" }, ]; /** * Soft pill segmented control. The active background slides between tabs via a * shared-layout `layoutId`. (Safe here: this control sits outside the page's * view-level AnimatePresence, so the two never collide.) */ export function Segmented({ active, onChange, }: { active: ViewId; onChange: (v: ViewId) => void; }) { return (
{ITEMS.map((item) => { const on = active === item.id; return ( ); })}
); }