feat: medusa-react admin hooks (#978)
* add: medusa admin hooks + tests * fix: remove unneeded props * fix: deps * fix: deps * fix: deps * fix: failing tests * fix: failing tests * fix: query key * add: yarn workspaces * fix: linting medusa-react * fix: add prepare script * fix: buildOptions * fix: useAdminShippingOptions query * fix: use qs instead for query params (#1019) * fix: formatting * debug: ci pipeline * debug: log node_modules structure * debug: use lerna bootstrap * debug: update node version * debug: print pkgs in workspace * debug: print pkgs in workspace * debug: print pkgs in workspace * debug: print pkgs in workspace * debug: add explicit build step * fix: jsdoc * debug: run build step * debug: fix build errors * debug: add build step to integration tests * fix: failing test * cleanup Co-authored-by: Sebastian Rindom <seb@medusajs.com> Co-authored-by: Sebastian Rindom <skrindom@gmail.com>
This commit is contained in:
2
packages/medusa-react/src/hooks/admin/users/index.ts
Normal file
2
packages/medusa-react/src/hooks/admin/users/index.ts
Normal file
@@ -0,0 +1,2 @@
|
||||
export * from "./queries"
|
||||
export * from "./mutations"
|
||||
99
packages/medusa-react/src/hooks/admin/users/mutations.ts
Normal file
99
packages/medusa-react/src/hooks/admin/users/mutations.ts
Normal file
@@ -0,0 +1,99 @@
|
||||
import {
|
||||
AdminDeleteUserRes,
|
||||
AdminResetPasswordRequest,
|
||||
AdminResetPasswordTokenRequest,
|
||||
AdminUserRes,
|
||||
} from "@medusajs/medusa"
|
||||
import {
|
||||
AdminCreateUserPayload,
|
||||
AdminUpdateUserPayload,
|
||||
Response,
|
||||
} from "@medusajs/medusa-js"
|
||||
import { useMutation, UseMutationOptions, useQueryClient } from "react-query"
|
||||
import { adminCustomerKeys } from ".."
|
||||
import { useMedusa } from "../../../contexts/medusa"
|
||||
import { buildOptions } from "../../utils/buildOptions"
|
||||
|
||||
export const useAdminCreateUser = (
|
||||
options?: UseMutationOptions<
|
||||
Response<AdminUserRes>,
|
||||
Error,
|
||||
AdminCreateUserPayload
|
||||
>
|
||||
) => {
|
||||
const { client } = useMedusa()
|
||||
const queryClient = useQueryClient()
|
||||
|
||||
return useMutation(
|
||||
(payload: AdminCreateUserPayload) => client.admin.users.create(payload),
|
||||
buildOptions(queryClient, adminCustomerKeys.lists(), options)
|
||||
)
|
||||
}
|
||||
|
||||
export const useAdminUpdateUser = (
|
||||
id: string,
|
||||
options?: UseMutationOptions<
|
||||
Response<AdminUserRes>,
|
||||
Error,
|
||||
AdminUpdateUserPayload
|
||||
>
|
||||
) => {
|
||||
const { client } = useMedusa()
|
||||
const queryClient = useQueryClient()
|
||||
|
||||
return useMutation(
|
||||
(payload: AdminUpdateUserPayload) => client.admin.users.update(id, payload),
|
||||
buildOptions(
|
||||
queryClient,
|
||||
[adminCustomerKeys.lists(), adminCustomerKeys.detail(id)],
|
||||
options
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
export const useAdminDeleteUser = (
|
||||
id: string,
|
||||
options?: UseMutationOptions<Response<AdminDeleteUserRes>, Error, void>
|
||||
) => {
|
||||
const { client } = useMedusa()
|
||||
const queryClient = useQueryClient()
|
||||
|
||||
return useMutation(
|
||||
() => client.admin.users.delete(id),
|
||||
buildOptions(
|
||||
queryClient,
|
||||
[adminCustomerKeys.detail(id), adminCustomerKeys.lists()],
|
||||
options
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
export const useAdminResetPassword = (
|
||||
options?: UseMutationOptions<
|
||||
Response<AdminUserRes>,
|
||||
Error,
|
||||
AdminResetPasswordRequest
|
||||
>
|
||||
) => {
|
||||
const { client } = useMedusa()
|
||||
return useMutation(
|
||||
(payload: AdminResetPasswordRequest) =>
|
||||
client.admin.users.resetPassword(payload),
|
||||
options
|
||||
)
|
||||
}
|
||||
|
||||
export const useAdminSendResetPasswordToken = (
|
||||
options?: UseMutationOptions<
|
||||
Response<void>,
|
||||
Error,
|
||||
AdminResetPasswordTokenRequest
|
||||
>
|
||||
) => {
|
||||
const { client } = useMedusa()
|
||||
return useMutation(
|
||||
(payload: AdminResetPasswordTokenRequest) =>
|
||||
client.admin.users.sendResetPasswordToken(payload),
|
||||
options
|
||||
)
|
||||
}
|
||||
45
packages/medusa-react/src/hooks/admin/users/queries.ts
Normal file
45
packages/medusa-react/src/hooks/admin/users/queries.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import { AdminUsersListRes, AdminUserRes } from "@medusajs/medusa"
|
||||
import { Response } from "@medusajs/medusa-js"
|
||||
import { useQuery } from "react-query"
|
||||
import { useMedusa } from "../../../contexts"
|
||||
import { UseQueryOptionsWrapper } from "../../../types"
|
||||
import { queryKeysFactory } from "../../utils/index"
|
||||
|
||||
const ADMIN_USERS_QUERY_KEY = `admin_users` as const
|
||||
|
||||
export const adminUserKeys = queryKeysFactory(ADMIN_USERS_QUERY_KEY)
|
||||
|
||||
type UserQueryKeys = typeof adminUserKeys
|
||||
|
||||
export const useAdminUsers = (
|
||||
options?: UseQueryOptionsWrapper<
|
||||
Response<AdminUsersListRes>,
|
||||
Error,
|
||||
ReturnType<UserQueryKeys["lists"]>
|
||||
>
|
||||
) => {
|
||||
const { client } = useMedusa()
|
||||
const { data, ...rest } = useQuery(
|
||||
adminUserKeys.lists(),
|
||||
() => client.admin.users.list(),
|
||||
options
|
||||
)
|
||||
return { ...data, ...rest } as const
|
||||
}
|
||||
|
||||
export const useAdminUser = (
|
||||
id: string,
|
||||
options?: UseQueryOptionsWrapper<
|
||||
Response<AdminUserRes>,
|
||||
Error,
|
||||
ReturnType<UserQueryKeys["detail"]>
|
||||
>
|
||||
) => {
|
||||
const { client } = useMedusa()
|
||||
const { data, ...rest } = useQuery(
|
||||
adminUserKeys.detail(id),
|
||||
() => client.admin.users.retrieve(id),
|
||||
options
|
||||
)
|
||||
return { ...data, ...rest } as const
|
||||
}
|
||||
Reference in New Issue
Block a user