significant refactor
This commit is contained in:
@@ -1,23 +1,49 @@
|
||||
import { queryOptions } from "@tanstack/react-query";
|
||||
import { listPlayers, getPlayer, getUnassociatedPlayers } from "./server";
|
||||
import { useServerSuspenseQuery } from "@/lib/tanstack-query/hooks";
|
||||
import { listPlayers, getPlayer, getUnassociatedPlayers, fetchMe } from "./server";
|
||||
|
||||
const playerKeys = {
|
||||
list: ['players', 'list'] as const,
|
||||
details: (id: string) => ['players', 'details', id] as const,
|
||||
unassociated: ['players','unassociated'] as const,
|
||||
export const playerKeys = {
|
||||
auth: ['auth'],
|
||||
list: ['players', 'list'],
|
||||
details: (id: string) => ['players', 'details', id],
|
||||
unassociated: ['players','unassociated'],
|
||||
};
|
||||
|
||||
export const playerQueries = {
|
||||
list: () => queryOptions({
|
||||
auth: () => ({
|
||||
queryKey: playerKeys.auth,
|
||||
queryFn: async () => await fetchMe()
|
||||
}),
|
||||
list: () => ({
|
||||
queryKey: playerKeys.list,
|
||||
queryFn: listPlayers,
|
||||
queryFn: async () => await listPlayers()
|
||||
}),
|
||||
details: (id: string) => queryOptions({
|
||||
details: (id: string) => ({
|
||||
queryKey: playerKeys.details(id),
|
||||
queryFn: () => getPlayer({ data: id }),
|
||||
queryFn: async () => await getPlayer({ data: id })
|
||||
}),
|
||||
unassociated: () => queryOptions({
|
||||
unassociated: () => ({
|
||||
queryKey: playerKeys.unassociated,
|
||||
queryFn: getUnassociatedPlayers,
|
||||
queryFn: async () => await getUnassociatedPlayers()
|
||||
}),
|
||||
};
|
||||
|
||||
export const useMe = () => {
|
||||
const { queryKey, queryFn } = playerQueries.auth();
|
||||
return useServerSuspenseQuery({
|
||||
queryKey,
|
||||
queryFn,
|
||||
options: {
|
||||
staleTime: 0,
|
||||
refetchOnMount: true
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
export const usePlayer = (id: string) =>
|
||||
useServerSuspenseQuery(playerQueries.details(id));
|
||||
|
||||
export const usePlayers = () =>
|
||||
useServerSuspenseQuery(playerQueries.list());
|
||||
|
||||
export const useUnassociatedPlayers = () =>
|
||||
useServerSuspenseQuery(playerQueries.unassociated());
|
||||
Reference in New Issue
Block a user