mirror of
https://github.com/docmost/docmost.git
synced 2026-05-15 21:24:09 +08:00
595bd1dc81
* fix editor connection loop * remove query refresh
38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import { useQuery, UseQueryResult } from "@tanstack/react-query";
|
|
import { getCollabToken, verifyUserToken } from "../services/auth-service";
|
|
import { ICollabToken, IVerifyUserToken } from "../types/auth.types";
|
|
import { isAxiosError } from "axios";
|
|
|
|
export function useVerifyUserTokenQuery(
|
|
verify: IVerifyUserToken,
|
|
): UseQueryResult<any, Error> {
|
|
return useQuery({
|
|
queryKey: ["verify-token", verify],
|
|
queryFn: () => verifyUserToken(verify),
|
|
enabled: !!verify.token,
|
|
staleTime: 0,
|
|
});
|
|
}
|
|
|
|
export function useCollabToken(): UseQueryResult<ICollabToken, Error> {
|
|
return useQuery({
|
|
queryKey: ["collab-token"],
|
|
queryFn: () => getCollabToken(),
|
|
staleTime: 20 * 60 * 60 * 1000, //20hrs
|
|
//refetchInterval: 12 * 60 * 60 * 1000, // 12hrs
|
|
//refetchIntervalInBackground: true,
|
|
refetchOnMount: true,
|
|
//@ts-ignore
|
|
retry: (failureCount, error) => {
|
|
if (isAxiosError(error) && error.response.status === 404) {
|
|
return false;
|
|
}
|
|
return 10;
|
|
},
|
|
retryDelay: (retryAttempt) => {
|
|
// Exponential backoff: 5s, 10s, 20s, etc.
|
|
return 5000 * Math.pow(2, retryAttempt - 1);
|
|
},
|
|
});
|
|
}
|