From 2b455b15a65030492b188a8d510ab72748e6c0ee Mon Sep 17 00:00:00 2001
From: Kasper Fabricius Kristensen
<45367945+kasperkristensen@users.noreply.github.com>
Date: Thu, 5 Dec 2024 16:51:35 +0100
Subject: [PATCH] fix(dashboard): Cleanup unsafe accesses to possibly undefined
values in order timeline (#10454)
**What**
- Fixes an unsafe access to a field that may be undefined if an order was created through a custom workflow.
---
.changeset/spicy-carrots-itch.md | 5 +
.../order-activity-section/order-timeline.tsx | 141 +++++++++---------
.../shipping-profile-create.tsx | 1 -
3 files changed, 78 insertions(+), 69 deletions(-)
create mode 100644 .changeset/spicy-carrots-itch.md
diff --git a/.changeset/spicy-carrots-itch.md b/.changeset/spicy-carrots-itch.md
new file mode 100644
index 0000000000..c7b3e9375b
--- /dev/null
+++ b/.changeset/spicy-carrots-itch.md
@@ -0,0 +1,5 @@
+---
+"@medusajs/dashboard": patch
+---
+
+fix(dashboard): Cleanup unsafe accesses to possibly undefined values in order timeline
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 6563fb6b9b..ed64a96293 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
@@ -1,10 +1,8 @@
-import { Button, IconButton, Text, Tooltip, clx, usePrompt } from "@medusajs/ui"
+import { Button, Text, Tooltip, clx, usePrompt } from "@medusajs/ui"
import * as Collapsible from "@radix-ui/react-collapsible"
import { PropsWithChildren, ReactNode, useMemo, useState } from "react"
-import { Link } from "react-router-dom"
-import { XMarkMini } from "@medusajs/icons"
import {
AdminClaim,
AdminExchange,
@@ -16,6 +14,7 @@ import {
import { useTranslation } from "react-i18next"
import { AdminOrderLineItem } from "@medusajs/types"
+import { By } from "../../../../../components/common/user-link"
import {
useCancelOrderTransfer,
useCustomer,
@@ -29,12 +28,11 @@ import {
} from "../../../../../hooks/api/exchanges"
import { useCancelReturn, useReturns } from "../../../../../hooks/api/returns"
import { useDate } from "../../../../../hooks/use-date"
+import { getFormattedAddress } from "../../../../../lib/addresses"
import { getStylizedAmount } from "../../../../../lib/money-amount-helpers"
import { getPaymentsFromOrder } from "../order-payment-section"
import ActivityItems from "./activity-items"
-import { By, UserLink } from "../../../../../components/common/user-link"
import ChangeDetailsTooltip from "./change-details-tooltip"
-import { getFormattedAddress } from "../../../../../lib/addresses"
type OrderTimelineProps = {
order: AdminOrder
@@ -394,12 +392,12 @@ const useActivityItems = (order: AdminOrder): Activity[] => {
edit.status === "requested"
? edit.requested_at
: edit.status === "confirmed"
- ? edit.confirmed_at
- : edit.status === "declined"
- ? edit.declined_at
- : edit.status === "canceled"
- ? edit.canceled_at
- : edit.created_at,
+ ? edit.confirmed_at
+ : edit.status === "declined"
+ ? edit.declined_at
+ : edit.status === "canceled"
+ ? edit.canceled_at
+ : edit.created_at,
children: isConfirmed ?