import { useState, useEffect, useCallback } from "react"; import { Mutation, useMutation, useQuery, useQueryClient, } from "@tanstack/react-query"; import { Link, useNavigate } from "react-router-dom"; import AuthRepository from "../repositories/AuthRepository.jsx"; import { useDispatch, useSelector } from "react-redux"; import { closeAuthModal, openAuthModal, } from "../slices/localVariablesSlice.jsx"; export const useTenants = () => { return useQuery({ queryKey: ["tenantlist"], queryFn: async () => await AuthRepository.getTenantList(), }); }; export const useSelectTenant = (onSuccessCallBack) => { const queryClient = useQueryClient(); return useMutation({ mutationFn: async (tenantId) => { const res = await AuthRepository.selectTenant(tenantId); return res.data; }, onSuccess: (data) => { localStorage.setItem("jwtToken", data.token); localStorage.setItem("refreshToken", data.refreshToken); if (onSuccessCallBack) onSuccessCallBack(); }, onError: (error) => { showToast(error.message || "Error while creating project", "error"); localStorage.removeItem("jwtToken"); localStorage.removeItem("refreshToken") localStorage.removeItem("ctnt") }, }); }; export const useAuthModal = () => { const dispatch = useDispatch(); const { isOpen } = useSelector((state) => state.localVariables.AuthModal); return { isOpen, onOpen: () => dispatch(openAuthModal()), onClose: () => dispatch(closeAuthModal()), }; };