feat(medusa-react): Add Collection batch (remove, add) endpoints (#1959)
This commit is contained in:
@@ -1,8 +1,10 @@
|
||||
import {
|
||||
AdminCollectionsDeleteRes,
|
||||
AdminCollectionsRes,
|
||||
AdminDeleteProductsFromCollectionReq,
|
||||
AdminPostCollectionsCollectionReq,
|
||||
AdminPostCollectionsReq,
|
||||
AdminPostProductsToCollectionReq,
|
||||
} from "@medusajs/medusa"
|
||||
import { Response } from "@medusajs/medusa-js"
|
||||
import { useMutation, UseMutationOptions, useQueryClient } from "react-query"
|
||||
@@ -62,3 +64,60 @@ export const useAdminDeleteCollection = (
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Hook returns function for adding multiple products to a collection.
|
||||
*
|
||||
* @param id - id of the collection in which products are being added
|
||||
* @param options
|
||||
*/
|
||||
export const useAdminAddProductsToCollection = (
|
||||
id: string,
|
||||
options?: UseMutationOptions<
|
||||
Response<AdminCollectionsRes>,
|
||||
Error,
|
||||
AdminPostProductsToCollectionReq
|
||||
>
|
||||
) => {
|
||||
const { client } = useMedusa()
|
||||
const queryClient = useQueryClient()
|
||||
|
||||
return useMutation(
|
||||
(payload: AdminPostProductsToCollectionReq) =>
|
||||
client.admin.collections.addProducts(id, payload),
|
||||
buildOptions(
|
||||
queryClient,
|
||||
[adminCollectionKeys.lists(), adminCollectionKeys.detail(id)],
|
||||
options
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Hook returns function for removal of multiple products from a collection.
|
||||
*
|
||||
* @param id - id of the collection from which products will be removed
|
||||
* @param options
|
||||
*/
|
||||
export const useAdminRemoveProductsFromCollection = (
|
||||
id: string,
|
||||
options?: UseMutationOptions<
|
||||
Response<AdminCollectionsDeleteRes>,
|
||||
Error,
|
||||
AdminDeleteProductsFromCollectionReq
|
||||
>
|
||||
) => {
|
||||
const { client } = useMedusa()
|
||||
const queryClient = useQueryClient()
|
||||
|
||||
return useMutation(
|
||||
(payload: AdminDeleteProductsFromCollectionReq) =>
|
||||
client.admin.collections.removeProducts(id, payload),
|
||||
buildOptions(
|
||||
queryClient,
|
||||
[adminCollectionKeys.lists(), adminCollectionKeys.detail(id)],
|
||||
options
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user