import { Text, Group, Stack, Paper, Indicator, Box, Tooltip, ActionIcon } from "@mantine/core";
import { FootballHelmetIcon } from "@phosphor-icons/react";
import { useNavigate } from "@tanstack/react-router";
import { Match } from "../types";
import TeamAvatar from "@/components/team-avatar";
import EmojiBar from "@/features/reactions/components/emoji-bar";
import { Suspense } from "react";
import { useSheet } from "@/hooks/use-sheet";
import Sheet from "@/components/sheet/sheet";
import TeamHeadToHeadSheet from "./team-head-to-head-sheet";
interface MatchCardProps {
match: Match;
hideH2H?: boolean;
}
const MatchCard = ({ match, hideH2H = false }: MatchCardProps) => {
const navigate = useNavigate();
const h2hSheet = useSheet();
const isHomeWin = match.home_cups > match.away_cups;
const isAwayWin = match.away_cups > match.home_cups;
const isStarted = match.status === "started";
const hasPrivate = match.home?.private || match.away?.private;
const handleHomeTeamClick = (e: React.MouseEvent) => {
e.stopPropagation();
if (match.home?.id) {
navigate({ to: `/teams/${match.home.id}` });
}
};
const handleAwayTeamClick = (e: React.MouseEvent) => {
e.stopPropagation();
if (match.away?.id) {
navigate({ to: `/teams/${match.away.id}` });
}
};
const handleH2HClick = (e: React.MouseEvent) => {
e.stopPropagation();
h2hSheet.open();
};
return (
<>
{isStarted && (
)}
{match.tournament.name}
{!match.tournament.regional && (
<>
-
Round {match.round + 1}
{match.is_losers_bracket && " (Losers)"}
>
)}
{match.home && match.away && !hideH2H && !hasPrivate && (
)}
{match.home?.name!}
{match.home?.players.map((p) => (
{p.first_name} {p.last_name}
))}
{match.home_cups}
{match.away?.name}
{match.away?.players.map((p) => (
{p.first_name} {p.last_name}
))}
{match.away_cups}
{match.home && match.away && !hideH2H && h2hSheet.isOpen && (
)}
>
);
};
export default MatchCard;