"use client" import { useState } from "react" import Link from "next/link" import { useBetslipStore } from "@/lib/store/betslip-store" import { getEventDetailMarkets, getCardsBookingsMarkets, type Event, type DetailMarketSection, } from "@/lib/mock-data" import { cn } from "@/lib/utils" import { ChevronDown, ChevronUp } from "lucide-react" const MARKET_CATEGORIES = [ "Betbuilder", "All", "Main", "Goals", "Handicap", "1st Half", "2nd Half", "Combo", "Chance Mix", "Home", "Half Time / Full Time", "Away", "Correct Score", "Asian Markets", "Corners", "Minutes", "Cards/Bookings", "Points Handicap", "Total Points", "Team 1", "Team 2", "Other", "Handicap Goals", "Total Goals", "Combo", "Specials", ] function MarketSectionBlock({ section, event, marketName, isExpanded, onToggle, }: { section: DetailMarketSection event: Event marketName: string isExpanded: boolean onToggle: () => void }) { const { bets, addBet } = useBetslipStore() const hasOutcomes = section.outcomes.length > 0 return (
{isExpanded && hasOutcomes && (
{section.outcomes.length > 2 && section.outcomes.length % 2 === 0 ? (
{section.outcomes.map((outcome) => { const betId = `${event.id}-${section.id}-${outcome.label.replace(/\s/g, "-").toLowerCase()}` const isSelected = bets.some((b) => b.id === betId) return (
{outcome.label}
) })}
) : ( section.outcomes.map((outcome) => { const betId = `${event.id}-${section.id}-${outcome.label.replace(/\s/g, "-").toLowerCase()}` const isSelected = bets.some((b) => b.id === betId) return (
{outcome.label}
) }) )}
)}
) } export function MatchDetailView({ event }: { event: Event }) { const [expandedSections, setExpandedSections] = useState>({ "bookings-1x2": true, "sending-off": true, "1st-booking": true, "1st-half-bookings-1x2": true, "booking-points-ou": true, "1st-half-1st-booking": true, }) const [activeCategory, setActiveCategory] = useState("Cards/Bookings") const detailMarkets = getEventDetailMarkets(event.id) const cardsBookings = getCardsBookingsMarkets(event.id) const toggleSection = (id: string) => { setExpandedSections((prev) => ({ ...prev, [id]: !prev[id] })) } const breadcrumbLeague = event.league === "Premier League" ? "England - Premier League" : `${event.country} - ${event.league}` const isCardsBookings = activeCategory === "Cards/Bookings" const leftSections = isCardsBookings ? cardsBookings.left : detailMarkets const rightSections = isCardsBookings ? cardsBookings.right : [] return (
{/* Breadcrumb: back arrow, ellipsis, path */}
< ... Football {breadcrumbLeague} / {event.homeTeam} vs. {event.awayTeam}

{breadcrumbLeague}

{/* Match header */}
{event.homeTeam.slice(0, 2)}
{event.homeTeam}
VS
{event.awayTeam.slice(0, 2)}
{event.awayTeam}
{/* Category tabs: horizontal scroll, selected = darker grey */}
{MARKET_CATEGORIES.map((label) => ( ))}
{/* Two-column grid of market sections */}
{/* Left column */}
{leftSections.map((section) => ( toggleSection(section.id)} /> ))}
{/* Right column (Cards/Bookings only) */} {rightSections.length > 0 && (
{rightSections.map((section) => ( toggleSection(section.id)} /> ))}
)}
) }