dia-gov's picture
Upload 569 files
cd6f98e verified
raw
history blame
1.04 kB
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
import type { Session } from "next-auth";
import OauthApi from "../services/workflow/oauthApi";
const QUERY_KEY = ["sid"];
export function useSID(session: Session | null) {
const api = OauthApi.fromSession(session);
const queryClient = useQueryClient();
const { data, refetch } = useQuery(QUERY_KEY, async () => await api.get_info_sid(), {
enabled: !!session,
retry: false,
});
const { mutateAsync: install } = useMutation(async () => {
if (!session) return;
window.location.href = await api.install("sid");
});
const { mutateAsync: uninstall } = useMutation(async () => {
if (!session) return;
await api.uninstall("sid");
queryClient.setQueriesData(QUERY_KEY, { connected: false });
});
return {
connected: data?.connected ?? false,
refetch,
install: async () => install(),
uninstall: async () => uninstall(),
manage: () => void window.open("https://me.sid.ai/", "_blank"),
};
}