Files
medusa-store/packages/medusa-react/src/hooks/admin/reservations/mutations.ts
T
Philip Korsholm 80b95a2300 Fix(medusa, admin-ui): Order allocations (#3419)
**What**
- Fix `delete-reservation` endpoint to allow deletions of reservations 
- remove `inventory_item_id` from reservation update call to properly update reservation
- invalidate all list caches to properly update order overview after an allocation has been created
- Fix overlap for long product titles in edit-allocation-modal

Fixes CORE-1214
2023-03-09 17:07:49 +00:00

77 lines
1.8 KiB
TypeScript

import {
AdminPostReservationsReq,
AdminPostReservationsReservationReq,
AdminReservationsDeleteRes,
AdminReservationsRes,
} from "@medusajs/medusa"
import {
UseMutationOptions,
useMutation,
useQueryClient,
} from "@tanstack/react-query"
import { Response } from "@medusajs/medusa-js/src"
import { adminReservationsKeys } from "./queries"
import { buildOptions } from "../../utils/buildOptions"
import { useMedusa } from "../../../contexts"
export const useAdminCreateReservation = (
options?: UseMutationOptions<
Response<AdminReservationsRes>,
Error,
AdminPostReservationsReq
>
) => {
const { client } = useMedusa()
const queryClient = useQueryClient()
return useMutation(
(payload: AdminPostReservationsReq) =>
client.admin.reservations.create(payload),
buildOptions(queryClient, [adminReservationsKeys.lists()], options)
)
}
export const useAdminUpdateReservation = (
id: string,
options?: UseMutationOptions<
Response<AdminReservationsRes>,
Error,
AdminPostReservationsReq
>
) => {
const { client } = useMedusa()
const queryClient = useQueryClient()
return useMutation(
(payload: AdminPostReservationsReservationReq) =>
client.admin.reservations.update(id, payload),
buildOptions(
queryClient,
[adminReservationsKeys.lists(), adminReservationsKeys.detail(id)],
options
)
)
}
export const useAdminDeleteReservation = (
id: string,
options?: UseMutationOptions<
Response<AdminReservationsDeleteRes>,
Error,
void
>
) => {
const { client } = useMedusa()
const queryClient = useQueryClient()
return useMutation(
() => client.admin.reservations.delete(id),
buildOptions(
queryClient,
[adminReservationsKeys.lists(), adminReservationsKeys.detail(id)],
options
)
)
}