found a little typo?
This commit is contained in:
33
src/lib/tanstack-query/hooks/use-server-suspense-query.ts
Normal file
33
src/lib/tanstack-query/hooks/use-server-suspense-query.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
import { QueryKey, UseQueryOptions, useSuspenseQuery } from "@tanstack/react-query";
|
||||
import { ServerResult } from "../types";
|
||||
import toast from '@/lib/sonner'
|
||||
|
||||
export function useServerSuspenseQuery<TData>(
|
||||
options: {
|
||||
queryKey: QueryKey,
|
||||
queryFn: () => Promise<ServerResult<TData>>;
|
||||
options?: Omit<UseQueryOptions<TData, Error, TData>, 'queryFn' | 'queryKey'>
|
||||
showErrorToast?: boolean;
|
||||
enabled?: boolean;
|
||||
}
|
||||
) {
|
||||
const { queryKey, queryFn, showErrorToast = true, options: queryOptions } = options;
|
||||
const queryResult = useSuspenseQuery({
|
||||
...queryOptions,
|
||||
queryKey,
|
||||
queryFn: async () => {
|
||||
const result = await queryFn();
|
||||
|
||||
if (!result.success) {
|
||||
if (showErrorToast) {
|
||||
toast.error(result.error.userMessage);
|
||||
}
|
||||
throw new Error(result.error.userMessage);
|
||||
}
|
||||
|
||||
return result.data;
|
||||
}
|
||||
});
|
||||
|
||||
return queryResult;
|
||||
}
|
||||
Reference in New Issue
Block a user