import { useState } from "react"; import { Box, Card, Text, Select, Button, Group, Stack } 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, }, }); toast.success("Badge awarded successfully"); setSelectedPlayerId(null); setSelectedBadgeId(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, })); return ( Award Manual Badge Select a player and a manual badge to award ); }; export default AwardBadges;