fix(medusa): Implement listAndCount for UserService and update list endpoint (#6190)
This commit is contained in:
committed by
GitHub
parent
eb498c500e
commit
d68089b2aa
@@ -1,4 +1,8 @@
|
||||
import { AdminUserRes, AdminUsersListRes } from "@medusajs/medusa"
|
||||
import {
|
||||
AdminGetUsersParams,
|
||||
AdminUserRes,
|
||||
AdminUsersListRes,
|
||||
} from "@medusajs/medusa"
|
||||
import { Response } from "@medusajs/medusa-js"
|
||||
import { useQuery } from "@tanstack/react-query"
|
||||
import { useMedusa } from "../../../contexts"
|
||||
@@ -13,14 +17,17 @@ type UserQueryKeys = typeof adminUserKeys
|
||||
|
||||
/**
|
||||
* This hook retrieves all admin users.
|
||||
*
|
||||
*
|
||||
* @example
|
||||
* To list users:
|
||||
*
|
||||
* ```tsx
|
||||
* import React from "react"
|
||||
* import { useAdminUsers } from "medusa-react"
|
||||
*
|
||||
*
|
||||
* const Users = () => {
|
||||
* const { users, isLoading } = useAdminUsers()
|
||||
*
|
||||
*
|
||||
* return (
|
||||
* <div>
|
||||
* {isLoading && <span>Loading...</span>}
|
||||
@@ -35,23 +42,60 @@ type UserQueryKeys = typeof adminUserKeys
|
||||
* </div>
|
||||
* )
|
||||
* }
|
||||
*
|
||||
*
|
||||
* export default Users
|
||||
*
|
||||
* ```
|
||||
*
|
||||
* By default, only the first `20` records are retrieved. You can control pagination by specifying the `limit` and `offset` properties:
|
||||
*
|
||||
* ```tsx
|
||||
* import React from "react"
|
||||
* import { useAdminUsers } from "medusa-react"
|
||||
*
|
||||
* const Users = () => {
|
||||
* const {
|
||||
* users,
|
||||
* limit,
|
||||
* offset,
|
||||
* isLoading
|
||||
* } = useAdminUsers({
|
||||
* limit: 20,
|
||||
* offset: 0
|
||||
* })
|
||||
*
|
||||
* return (
|
||||
* <div>
|
||||
* {isLoading && <span>Loading...</span>}
|
||||
* {users && !users.length && <span>No Users</span>}
|
||||
* {users && users.length > 0 && (
|
||||
* <ul>
|
||||
* {users.map((user) => (
|
||||
* <li key={user.id}>{user.email}</li>
|
||||
* ))}
|
||||
* </ul>
|
||||
* )}
|
||||
* </div>
|
||||
* )
|
||||
* }
|
||||
*
|
||||
* export default Users
|
||||
* ```
|
||||
*
|
||||
* @customNamespace Hooks.Admin.Users
|
||||
* @category Queries
|
||||
*/
|
||||
export const useAdminUsers = (
|
||||
query?: AdminGetUsersParams,
|
||||
options?: UseQueryOptionsWrapper<
|
||||
Response<AdminUsersListRes>,
|
||||
Error,
|
||||
ReturnType<UserQueryKeys["lists"]>
|
||||
ReturnType<UserQueryKeys["list"]>
|
||||
>
|
||||
) => {
|
||||
const { client } = useMedusa()
|
||||
const { data, ...rest } = useQuery(
|
||||
adminUserKeys.lists(),
|
||||
() => client.admin.users.list(),
|
||||
adminUserKeys.list(query),
|
||||
() => client.admin.users.list(query),
|
||||
options
|
||||
)
|
||||
return { ...data, ...rest } as const
|
||||
@@ -59,20 +103,20 @@ export const useAdminUsers = (
|
||||
|
||||
/**
|
||||
* This hook retrieves an admin user's details.
|
||||
*
|
||||
*
|
||||
* @example
|
||||
* import React from "react"
|
||||
* import { useAdminUser } from "medusa-react"
|
||||
*
|
||||
*
|
||||
* type Props = {
|
||||
* userId: string
|
||||
* }
|
||||
*
|
||||
*
|
||||
* const User = ({ userId }: Props) => {
|
||||
* const { user, isLoading } = useAdminUser(
|
||||
* userId
|
||||
* )
|
||||
*
|
||||
*
|
||||
* return (
|
||||
* <div>
|
||||
* {isLoading && <span>Loading...</span>}
|
||||
@@ -80,9 +124,9 @@ export const useAdminUsers = (
|
||||
* </div>
|
||||
* )
|
||||
* }
|
||||
*
|
||||
*
|
||||
* export default User
|
||||
*
|
||||
*
|
||||
* @customNamespace Hooks.Admin.Users
|
||||
* @category Queries
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user