Actueel aanbod
In productie komt dit uit de XS2Event API. Prijs en voorraad worden bij selectie opnieuw live gecontroleerd.
import React, { useMemo, useState } from "react"; import { motion } from "framer-motion"; import { Search, CalendarDays, MapPin, ShieldCheck, Plane, Ticket, Users, Star, ArrowRight, Clock, CheckCircle2 } from "lucide-react"; import { Card, CardContent } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; const mockEvents = [ { id: "xs2-001", competition: "Premier League", homeTeam: "Manchester United", awayTeam: "Manchester City", date: "2026-09-19", time: "15:00", venue: "Old Trafford", city: "Manchester", image: "https://images.unsplash.com/photo-1522778119026-d647f0596c20?q=80&w=1200&auto=format&fit=crop", fromPrice: 395, availability: "Limited", categories: [ { id: "cat-1", name: "Longside Premium", supplierNet: 310, sellPrice: 395, seatsTogether: 2 }, { id: "cat-2", name: "Hospitality Lounge", supplierNet: 575, sellPrice: 695, seatsTogether: 4 }, { id: "cat-3", name: "Executive Package", supplierNet: 925, sellPrice: 1095, seatsTogether: 4 }, ], }, { id: "xs2-002", competition: "Premier League", homeTeam: "Liverpool", awayTeam: "Arsenal", date: "2026-10-03", time: "17:30", venue: "Anfield", city: "Liverpool", image: "https://images.unsplash.com/photo-1574629810360-7efbbe195018?q=80&w=1200&auto=format&fit=crop", fromPrice: 445, availability: "Available", categories: [ { id: "cat-4", name: "Museum & Matchday", supplierNet: 355, sellPrice: 445, seatsTogether: 2 }, { id: "cat-5", name: "Hospitality Premium", supplierNet: 690, sellPrice: 825, seatsTogether: 4 }, ], }, { id: "xs2-003", competition: "Non-League Experience", homeTeam: "Macclesfield FC", awayTeam: "Chester FC", date: "2026-08-29", time: "15:00", venue: "Leasing.com Stadium", city: "Macclesfield", image: "https://images.unsplash.com/photo-1551958219-acbc608c6377?q=80&w=1200&auto=format&fit=crop", fromPrice: 75, availability: "Available", categories: [ { id: "cat-6", name: "Match Ticket", supplierNet: 45, sellPrice: 75, seatsTogether: 6 }, { id: "cat-7", name: "Bar 27 Hospitality", supplierNet: 115, sellPrice: 175, seatsTogether: 6 }, ], }, ]; function formatDate(value) { return new Date(value).toLocaleDateString("nl-NL", { weekday: "short", day: "numeric", month: "short", year: "numeric", }); } export default function TftaTicketApiPrototype() { const [query, setQuery] = useState(""); const [selectedEvent, setSelectedEvent] = useState(mockEvents[0]); const [selectedCategory, setSelectedCategory] = useState(mockEvents[0].categories[0]); const [quantity, setQuantity] = useState(2); const filteredEvents = useMemo(() => { const q = query.toLowerCase(); return mockEvents.filter((event) => `${event.homeTeam} ${event.awayTeam} ${event.city} ${event.competition}`.toLowerCase().includes(q) ); }, [query]); const total = selectedCategory.sellPrice * quantity; const estimatedMargin = (selectedCategory.sellPrice - selectedCategory.supplierNet) * quantity; function selectEvent(event) { setSelectedEvent(event); setSelectedCategory(event.categories[0]); setQuantity(2); } return (
Een premium ticket- en hospitalitysite waarbij het actuele aanbod via de leverancier-API wordt opgehaald, terwijl TFTA de klantreis, marge, service en beleving beheert.
Featured trip
In productie komt dit uit de XS2Event API. Prijs en voorraad worden bij selectie opnieuw live gecontroleerd.