From 4bbf0d23674856f2d9fd0a9d137a478bc90b4cdb Mon Sep 17 00:00:00 2001 From: Nicolas Gorga <62995075+NicolasGorga@users.noreply.github.com> Date: Wed, 12 Nov 2025 11:11:47 -0300 Subject: [PATCH] fix(dashboard): use order version 1 for the initial node of activity timeline (#13997) * Add preprocess to version param to validate as number * Add changeset * Use the first version of the order as the starting node of activity to show correct total * Add changeset * Fetch first order version only if it's not the current version * Remove conditionally rendered hook, use enable config --- .changeset/social-donuts-pay.md | 5 ++++ .changeset/tiny-bottles-turn.md | 5 ++++ .../order-activity-section/order-timeline.tsx | 28 +++++++++++++------ .../medusa/src/api/admin/orders/validators.ts | 10 ++++++- 4 files changed, 38 insertions(+), 10 deletions(-) create mode 100644 .changeset/social-donuts-pay.md create mode 100644 .changeset/tiny-bottles-turn.md diff --git a/.changeset/social-donuts-pay.md b/.changeset/social-donuts-pay.md new file mode 100644 index 0000000000..c204e31503 --- /dev/null +++ b/.changeset/social-donuts-pay.md @@ -0,0 +1,5 @@ +--- +"@medusajs/dashboard": patch +--- + +fix(dashboard): use order version 1 for the initial node of activity timeline diff --git a/.changeset/tiny-bottles-turn.md b/.changeset/tiny-bottles-turn.md new file mode 100644 index 0000000000..a0e1ee0e56 --- /dev/null +++ b/.changeset/tiny-bottles-turn.md @@ -0,0 +1,5 @@ +--- +"@medusajs/medusa": patch +--- + +fix(medusa): preprocess `version` as number in AdminGetOrdersOrderParams validator diff --git a/packages/admin/dashboard/src/routes/orders/order-detail/components/order-activity-section/order-timeline.tsx b/packages/admin/dashboard/src/routes/orders/order-detail/components/order-activity-section/order-timeline.tsx index 652cb065b9..9e6a464966 100644 --- a/packages/admin/dashboard/src/routes/orders/order-detail/components/order-activity-section/order-timeline.tsx +++ b/packages/admin/dashboard/src/routes/orders/order-detail/components/order-activity-section/order-timeline.tsx @@ -18,6 +18,7 @@ import { By } from "../../../../../components/common/user-link" import { useCancelOrderTransfer, useCustomer, + useOrder, useOrderChanges, useOrderLineItems, } from "../../../../../hooks/api" @@ -123,6 +124,11 @@ type Activity = { const useActivityItems = (order: AdminOrder): Activity[] => { const { t } = useTranslation() + const { order: initialOrder = order } = useOrder(order.id, { + version: 1, + fields: "created_at,total,currency_code", + }, { enabled: order.version !== 1}) + const { order_changes: orderChanges = [] } = useOrderChanges(order.id, { change_type: [ "edit", @@ -520,19 +526,23 @@ const useActivityItems = (order: AdminOrder): Activity[] => { return new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime() }) - const createdAt = { - title: t("orders.activity.events.placed.title"), - timestamp: order.created_at, - children: ( - - {getStylizedAmount(order.total, order.currency_code)} - - ), + if (initialOrder.created_at) { + const createdAt = { + title: t("orders.activity.events.placed.title"), + timestamp: initialOrder.created_at, + children: ( + + {getStylizedAmount(initialOrder.total, initialOrder.currency_code)} + + ), + } + sortedActivities.push(createdAt) } - return [...sortedActivities, createdAt] + return [...sortedActivities] }, [ order, + initialOrder, payments, returns, exchanges, diff --git a/packages/medusa/src/api/admin/orders/validators.ts b/packages/medusa/src/api/admin/orders/validators.ts index 9739469af6..e18674ff66 100644 --- a/packages/medusa/src/api/admin/orders/validators.ts +++ b/packages/medusa/src/api/admin/orders/validators.ts @@ -9,7 +9,15 @@ import { export const AdminGetOrdersOrderParams = createSelectParams().merge( z.object({ - version: z.number().optional(), + version: z.preprocess( + (val) => { + if (val && typeof val === "string") { + return parseInt(val) + } + return val + }, + z.number().optional() + ) }) )