Files
flxn-app/src/features/matches/queries.ts
2025-10-13 14:18:54 -05:00

31 lines
1.2 KiB
TypeScript

import { useServerSuspenseQuery } from "@/lib/tanstack-query/hooks";
import { getMatchesBetweenTeams, getMatchesBetweenPlayers } from "./server";
export const matchKeys = {
headToHeadTeams: (team1Id: string, team2Id: string) => ['matches', 'headToHead', 'teams', team1Id, team2Id] as const,
headToHeadPlayers: (player1Id: string, player2Id: string) => ['matches', 'headToHead', 'players', player1Id, player2Id] as const,
};
export const matchQueries = {
headToHeadTeams: (team1Id: string, team2Id: string) => ({
queryKey: matchKeys.headToHeadTeams(team1Id, team2Id),
queryFn: () => getMatchesBetweenTeams({ data: { team1Id, team2Id } }),
}),
headToHeadPlayers: (player1Id: string, player2Id: string) => ({
queryKey: matchKeys.headToHeadPlayers(player1Id, player2Id),
queryFn: () => getMatchesBetweenPlayers({ data: { player1Id, player2Id } }),
}),
};
export const useTeamHeadToHead = (team1Id: string, team2Id: string, enabled = true) =>
useServerSuspenseQuery({
...matchQueries.headToHeadTeams(team1Id, team2Id),
enabled,
});
export const usePlayerHeadToHead = (player1Id: string, player2Id: string, enabled = true) =>
useServerSuspenseQuery({
...matchQueries.headToHeadPlayers(player1Id, player2Id),
enabled,
});