feat(admin-next): Email password invite flow in admin 2.0 (#6821)

This commit is contained in:
Oli Juhl
2024-03-29 08:05:11 +01:00
committed by GitHub
parent 45c49e89f2
commit d97af91a8d
15 changed files with 453 additions and 20 deletions
@@ -1,6 +1,7 @@
import { useMutation } from "@tanstack/react-query"
import { adminAuthKeys, useAdminCustomQuery } from "medusa-react"
import { medusa } from "../medusa"
import { AcceptInviteInput, CreateAuthUserInput } from "./types/auth"
export const useV2Session = (options: any = {}) => {
const { data, isLoading, isError, error } = useAdminCustomQuery(
@@ -15,7 +16,7 @@ export const useV2Session = (options: any = {}) => {
return { user, isLoading, isError, error }
}
export const useV2LoginWithSession = () => {
export const useV2LoginAndSetSession = () => {
return useMutation(
(payload: { email: string; password: string }) =>
medusa.client.request("POST", "/auth/admin/emailpass", {
@@ -41,3 +42,24 @@ export const useV2LoginWithSession = () => {
}
)
}
export const useV2CreateAuthUser = (provider = "emailpass") => {
// TODO: Migrate type to work for other providers, e.g. Google
return useMutation((args: CreateAuthUserInput) =>
medusa.client.request("POST", `/auth/admin/${provider}`, args)
)
}
export const useV2AcceptInvite = (inviteToken: string) => {
return useMutation((input: AcceptInviteInput) =>
medusa.client.request(
"POST",
`/admin/invites/accept?token=${inviteToken}`,
input.payload,
{},
{
Authorization: `Bearer ${input.token}`,
}
)
)
}
@@ -0,0 +1,13 @@
export type AcceptInviteInput = {
payload: {
first_name: string
last_name: string
}
// Token for the created auth user
token: string
}
export type CreateAuthUserInput = {
email: string
password: string
}