import { useState } from "react"; import { Box, Card, Text, Select, Button, Group, Stack, Badge, Divider } from "@mantine/core"; import { awardManualBadge } from "@/features/badges/server"; import { useAllBadges } from "@/features/badges/queries"; import toast from "@/lib/sonner"; import { usePlayers } from "@/features/players/queries"; const AwardBadges = () => { const { data: players } = usePlayers(); const { data: allBadges } = useAllBadges(); const [selectedPlayerId, setSelectedPlayerId] = useState(null); const [selectedBadgeId, setSelectedBadgeId] = useState(null); const [isAwarding, setIsAwarding] = useState(false); const manualBadges = allBadges.filter((badge) => badge.type === "manual"); const handleAwardBadge = async () => { if (!selectedPlayerId || !selectedBadgeId) return; setIsAwarding(true); try { await awardManualBadge({ data: { playerId: selectedPlayerId, badgeId: selectedBadgeId, }, }); const selectedPlayer = players.find((p) => p.id === selectedPlayerId); const playerName = selectedPlayer ? `${selectedPlayer.first_name} ${selectedPlayer.last_name}` : "Player"; toast.success(`Badge awarded to ${playerName}`); setSelectedPlayerId(null); } catch (error) { toast.error("Failed to award badge"); } finally { setIsAwarding(false); } }; const playerOptions = players.map((player) => ({ value: player.id, label: `${player.first_name} ${player.last_name}`, })); const badgeOptions = manualBadges.map((badge) => ({ value: badge.id, label: badge.name, })); const selectedBadge = manualBadges.find((b) => b.id === selectedBadgeId); return ( Award Manual Badge )} ); }; export default AwardBadges;