fix(dashboard): allocation UI for orders with more than 20 reservation items (#12989)
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { HttpTypes } from "@medusajs/types"
|
||||
import { AdminOrder, AdminOrderLineItem, HttpTypes } from "@medusajs/types"
|
||||
|
||||
export const getPaymentsFromOrder = (order: HttpTypes.AdminOrder) => {
|
||||
return order.payment_collections
|
||||
@@ -6,3 +6,18 @@ export const getPaymentsFromOrder = (order: HttpTypes.AdminOrder) => {
|
||||
.flat(1)
|
||||
.filter(Boolean) as HttpTypes.AdminPayment[]
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a limit for number of reservations that order can have.
|
||||
*/
|
||||
export function getReservationsLimitCount(order: AdminOrder) {
|
||||
if (!order?.items?.length) {
|
||||
return 0
|
||||
}
|
||||
|
||||
return order.items.reduce(
|
||||
(acc: number, item: AdminOrderLineItem) =>
|
||||
acc + (item.variant?.inventory_items?.length || 1),
|
||||
0
|
||||
)
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@ import {
|
||||
useReservationItems,
|
||||
useShippingOptions,
|
||||
} from "../../../../../hooks/api"
|
||||
import { getReservationsLimitCount } from "../../../../../lib/orders"
|
||||
|
||||
type OrderCreateFulfillmentFormProps = {
|
||||
order: AdminOrder
|
||||
@@ -41,6 +42,7 @@ export function OrderCreateFulfillmentForm({
|
||||
|
||||
const { reservations } = useReservationItems({
|
||||
line_item_id: order.items.map((i) => i.id),
|
||||
limit: getReservationsLimitCount(order),
|
||||
})
|
||||
|
||||
const itemReservedQuantitiesMap = useMemo(
|
||||
|
||||
@@ -51,6 +51,7 @@ import { useReturns } from "../../../../../hooks/api/returns"
|
||||
import { useDate } from "../../../../../hooks/use-date"
|
||||
import { getTotalCreditLines } from "../../../../../lib/credit-line"
|
||||
import { formatCurrency } from "../../../../../lib/format-currency"
|
||||
import { getReservationsLimitCount } from "../../../../../lib/orders"
|
||||
import {
|
||||
getLocaleAmount,
|
||||
getStylizedAmount,
|
||||
@@ -78,6 +79,7 @@ export const OrderSummarySection = ({
|
||||
const { reservations } = useReservationItems(
|
||||
{
|
||||
line_item_id: order?.items?.map((i) => i.id),
|
||||
limit: getReservationsLimitCount(order),
|
||||
},
|
||||
{ enabled: Array.isArray(order?.items) }
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user