MIF_E31221222/sigap-website/app/(pages)/(auth)/_queries/mutations.ts

59 lines
2.0 KiB
TypeScript

import { useMutation, useQueries, useQuery } from "@tanstack/react-query"
import { checkPermissionNew, checkPermissions, sendMagicLink, sendPasswordRecovery, signInPasswordless, signInWithPassword, signOut, verifyOtp } from "../action"
export const useSignInPasswordlessMutation = () => {
return useMutation({
mutationKey: ["signin"],
mutationFn: async (formData: FormData) => await signInPasswordless(formData),
})
}
export const useSignInWithPasswordMutation = () => {
return useMutation({
mutationKey: ["signin", "credentials"],
mutationFn: async (formData: FormData) => await signInWithPassword(formData),
})
}
export const useSignOutMutation = () => {
return useMutation({
mutationKey: ["signout"],
mutationFn: async () => await signOut(),
})
}
export const useSendMagicLinkMutation = () => {
return useMutation({
mutationKey: ["send-magic-link"],
mutationFn: async (email: string) => await sendMagicLink(email),
})
}
export const useSendPasswordRecoveryMutation = () => {
return useMutation({
mutationKey: ["send-password-recovery"],
mutationFn: async (email: string) => await sendPasswordRecovery(email),
})
}
export const useVerifyOtpMutation = () => {
return useMutation({
mutationKey: ["verify-otp"],
mutationFn: async (formData: FormData) => await verifyOtp(formData),
})
}
export const useCheckPermissionsMutation = () => {
return useMutation({
mutationKey: ["check-permissions"],
mutationFn: async ({ userId, action, resource }: { userId: string; action: string; resource: string }) => await checkPermissions(userId, action, resource),
})
}
export const useCheckPermissionsNewQuery = (email: string, action: string, resource: string) => {
return useQuery({
queryKey: ["check-permissions", email, action, resource],
queryFn: async () => await checkPermissionNew(email, action, resource),
})
}