import { UseMutationOptions, useMutation } from "@tanstack/react-query" import { FetchError } from "@medusajs/js-sdk" import { sdk } from "../../lib/client" import { HttpTypes } from "@medusajs/types" export const useSignInWithEmailPass = ( options?: UseMutationOptions< string, FetchError, HttpTypes.AdminSignUpWithEmailPassword > ) => { return useMutation({ mutationFn: (payload) => sdk.auth.login("user", "emailpass", payload), onSuccess: async (data, variables, context) => { options?.onSuccess?.(data, variables, context) }, ...options, }) } export const useSignUpWithEmailPass = ( options?: UseMutationOptions< string, FetchError, HttpTypes.AdminSignInWithEmailPassword > ) => { return useMutation({ mutationFn: (payload) => sdk.auth.register("user", "emailpass", payload), onSuccess: async (data, variables, context) => { options?.onSuccess?.(data, variables, context) }, ...options, }) } export const useResetPasswordForEmailPass = ( options?: UseMutationOptions ) => { return useMutation({ mutationFn: (payload) => sdk.auth.resetPassword("user", "emailpass", { identifier: payload.email, }), onSuccess: async (data, variables, context) => { options?.onSuccess?.(data, variables, context) }, ...options, }) } export const useLogout = (options?: UseMutationOptions) => { return useMutation({ mutationFn: () => sdk.auth.logout(), ...options, }) } export const useUpdateProviderForEmailPass = ( options?: UseMutationOptions ) => { return useMutation({ mutationFn: (payload) => sdk.auth.updateProvider("user", "emailpass", payload), onSuccess: async (data, variables, context) => { options?.onSuccess?.(data, variables, context) }, ...options, }) }