fix(dashboard): allocation UI for orders with more than 20 reservation items (#12989)
This commit is contained in:
1 parent
35bd9f0bc4
commit
3fa1db9dea
4 files changed
+25
-1
No files matched your search
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@medusajs/dashboard": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
fix(dashboard): allocation UI for orders with more than 20 reservation items
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import { HttpTypes } from "@medusajs/types"
|
import { AdminOrder, AdminOrderLineItem, HttpTypes } from "@medusajs/types"
|
||||||
|
|
||||||
export const getPaymentsFromOrder = (order: HttpTypes.AdminOrder) => {
|
export const getPaymentsFromOrder = (order: HttpTypes.AdminOrder) => {
|
||||||
return order.payment_collections
|
return order.payment_collections
|
||||||
@@ -6,3 +6,18 @@ export const getPaymentsFromOrder = (order: HttpTypes.AdminOrder) => {
|
|||||||
.flat(1)
|
.flat(1)
|
||||||
.filter(Boolean) as HttpTypes.AdminPayment[]
|
.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
|
||||||
|
)
|
||||||
|
}
|
||||||
+2
@@ -23,6 +23,7 @@ import {
|
|||||||
useReservationItems,
|
useReservationItems,
|
||||||
useShippingOptions,
|
useShippingOptions,
|
||||||
} from "../../../../../hooks/api"
|
} from "../../../../../hooks/api"
|
||||||
|
import { getReservationsLimitCount } from "../../../../../lib/orders"
|
||||||
|
|
||||||
type OrderCreateFulfillmentFormProps = {
|
type OrderCreateFulfillmentFormProps = {
|
||||||
order: AdminOrder
|
order: AdminOrder
|
||||||
@@ -41,6 +42,7 @@ export function OrderCreateFulfillmentForm({
|
|||||||
|
|
||||||
const { reservations } = useReservationItems({
|
const { reservations } = useReservationItems({
|
||||||
line_item_id: order.items.map((i) => i.id),
|
line_item_id: order.items.map((i) => i.id),
|
||||||
|
limit: getReservationsLimitCount(order),
|
||||||
})
|
})
|
||||||
|
|
||||||
const itemReservedQuantitiesMap = useMemo(
|
const itemReservedQuantitiesMap = useMemo(
|
||||||
|
|||||||
+2
@@ -51,6 +51,7 @@ import { useReturns } from "../../../../../hooks/api/returns"
|
|||||||
import { useDate } from "../../../../../hooks/use-date"
|
import { useDate } from "../../../../../hooks/use-date"
|
||||||
import { getTotalCreditLines } from "../../../../../lib/credit-line"
|
import { getTotalCreditLines } from "../../../../../lib/credit-line"
|
||||||
import { formatCurrency } from "../../../../../lib/format-currency"
|
import { formatCurrency } from "../../../../../lib/format-currency"
|
||||||
|
import { getReservationsLimitCount } from "../../../../../lib/orders"
|
||||||
import {
|
import {
|
||||||
getLocaleAmount,
|
getLocaleAmount,
|
||||||
getStylizedAmount,
|
getStylizedAmount,
|
||||||
@@ -78,6 +79,7 @@ export const OrderSummarySection = ({
|
|||||||
const { reservations } = useReservationItems(
|
const { reservations } = useReservationItems(
|
||||||
{
|
{
|
||||||
line_item_id: order?.items?.map((i) => i.id),
|
line_item_id: order?.items?.map((i) => i.id),
|
||||||
|
limit: getReservationsLimitCount(order),
|
||||||
},
|
},
|
||||||
{ enabled: Array.isArray(order?.items) }
|
{ enabled: Array.isArray(order?.items) }
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in new issue
Block a user