import { ThemedText } from "@/components/themed-text"; import { ThemedView } from "@/components/themed-view"; import { IconSymbol } from "@/components/ui/icon-symbol"; import { MatchDetailData } from "@/types/api"; import React from "react"; import { useTranslation } from "react-i18next"; import { StyleSheet, View } from "react-native"; interface CricketMatchInfoCardProps { data: MatchDetailData; isDark: boolean; } export function CricketMatchInfoCard({ data, isDark, }: CricketMatchInfoCardProps) { const { t } = useTranslation(); const { match } = data; const infoItems = [ { icon: "business" as const, label: t("detail.info_card.stadium"), // "名称" (Name) in screenshot value: match.eventStadium, }, { icon: "location-sharp" as const, label: t("detail.info_card.country"), // "地点" (Location) in screenshot - using country/city if available value: match.countryName || match.leagueName, // JSON has empty countryName in example, maybe leagueName or city? Example "Windhoek" is a city. API usually has `eventCity`? `Untitled-1` doesn't show city. Use what we have. }, // Capacity missing in JSON, skipping. { icon: "calendar-outline" as const, label: t("detail.info_card.date"), value: match.eventDateStart || match.eventDate, }, { icon: "information-circle-outline" as const, label: t("detail.info_card.toss"), value: match.eventToss, }, ].filter((item) => item.value && item.value.trim() !== ""); if (infoItems.length === 0) return null; return ( {t("detail.info_card.title")} {infoItems.map((item, index) => ( {item.label} {item.value} ))} ); } const styles = StyleSheet.create({ container: { margin: 16, marginBottom: 32, // bottom spacer borderRadius: 12, padding: 16, shadowColor: "#000", shadowOffset: { width: 0, height: 2 }, shadowOpacity: 0.1, shadowRadius: 4, elevation: 3, }, title: { fontSize: 14, fontWeight: "bold", marginBottom: 20, }, content: { gap: 20, }, row: { flexDirection: "row", justifyContent: "space-between", alignItems: "center", }, leftContainer: { flexDirection: "row", alignItems: "center", gap: 8, }, label: { color: "#888", fontSize: 14, width: 60, // Fixed width for alignment like in screenshot }, value: { fontSize: 14, fontWeight: "500", flex: 1, textAlign: "right", }, });