From ddf3306af14c0fb37f3dcc0701a36a6e1072959c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Frane=20Poli=C4=87?= <16856471+fPolic@users.noreply.github.com> Date: Fri, 25 Oct 2024 13:31:30 +0200 Subject: [PATCH] feat(dashboard, medusa, types): orders list on customer details page (#9790) **What** - display orders list on customer details --- CLOSES CC-625 --- .../customer-group-section.tsx | 4 +++ .../customer-order-section.tsx | 26 ++++++++++++------- .../customer-detail/customer-detail.tsx | 5 ++-- .../types/src/http/order/admin/queries.ts | 3 ++- .../medusa/src/api/admin/orders/validators.ts | 3 ++- 5 files changed, 26 insertions(+), 15 deletions(-) diff --git a/packages/admin/dashboard/src/routes/customers/customer-detail/components/customer-group-section/customer-group-section.tsx b/packages/admin/dashboard/src/routes/customers/customer-detail/components/customer-group-section/customer-group-section.tsx index 46e611ff87..649d0b8112 100644 --- a/packages/admin/dashboard/src/routes/customers/customer-detail/components/customer-group-section/customer-group-section.tsx +++ b/packages/admin/dashboard/src/routes/customers/customer-detail/components/customer-group-section/customer-group-section.tsx @@ -35,6 +35,7 @@ type CustomerGroupSectionProps = { } const PAGE_SIZE = 10 +const PREFIX = "cusgr" export const CustomerGroupSection = ({ customer, @@ -44,6 +45,7 @@ export const CustomerGroupSection = ({ const [rowSelection, setRowSelection] = useState({}) const { raw, searchParams } = useCustomerGroupTableQuery({ pageSize: PAGE_SIZE, + prefix: PREFIX, }) const { customer_groups, count, isLoading, isError, error } = @@ -72,6 +74,7 @@ export const CustomerGroupSection = ({ enablePagination: true, enableRowSelection: true, pageSize: PAGE_SIZE, + prefix: PREFIX, rowSelection: { state: rowSelection, updater: setRowSelection, @@ -132,6 +135,7 @@ export const CustomerGroupSection = ({ pageSize={PAGE_SIZE} isLoading={isLoading} count={count} + prefix={PREFIX} navigateTo={(row) => `/customer-groups/${row.id}`} filters={filters} search diff --git a/packages/admin/dashboard/src/routes/customers/customer-detail/components/customer-order-section/customer-order-section.tsx b/packages/admin/dashboard/src/routes/customers/customer-detail/components/customer-order-section/customer-order-section.tsx index abbe859bd1..4b40d8f2be 100644 --- a/packages/admin/dashboard/src/routes/customers/customer-detail/components/customer-order-section/customer-order-section.tsx +++ b/packages/admin/dashboard/src/routes/customers/customer-detail/components/customer-order-section/customer-order-section.tsx @@ -1,6 +1,6 @@ import { ArrowPath } from "@medusajs/icons" import { HttpTypes } from "@medusajs/types" -import { Button, Container, Heading } from "@medusajs/ui" +import { Container, Heading } from "@medusajs/ui" import { keepPreviousData } from "@tanstack/react-query" import { createColumnHelper } from "@tanstack/react-table" import { useMemo } from "react" @@ -17,6 +17,7 @@ type CustomerGeneralSectionProps = { customer: HttpTypes.AdminCustomer } +const PREFIX = "cusord" const PAGE_SIZE = 10 const DEFAULT_RELATIONS = "*customer,*items,*sales_channel" const DEFAULT_FIELDS = @@ -29,6 +30,7 @@ export const CustomerOrderSection = ({ const { searchParams, raw } = useOrderTableQuery({ pageSize: PAGE_SIZE, + prefix: PREFIX, }) const { orders, count, isLoading, isError, error } = useOrders( { @@ -50,6 +52,7 @@ export const CustomerOrderSection = ({ enablePagination: true, count, pageSize: PAGE_SIZE, + prefix: PREFIX, }) if (isError) { @@ -60,11 +63,12 @@ export const CustomerOrderSection = ({
{t("orders.domain")} -
- -
+ {/*TODO: ENABLE WHEN DRAFT ORDERS ARE DONE*/} + {/*
*/} + {/* */} + {/*
*/}
) @@ -115,10 +120,11 @@ const useColumns = () => { return useMemo( () => [ ...base, - columnHelper.display({ - id: "actions", - cell: ({ row }) => , - }), + // TODO: REENABLE WHEN TRANSFER OWNERSHIP IS IMPLEMENTED + // columnHelper.display({ + // id: "actions", + // cell: ({ row }) => , + // }), ], [base] ) diff --git a/packages/admin/dashboard/src/routes/customers/customer-detail/customer-detail.tsx b/packages/admin/dashboard/src/routes/customers/customer-detail/customer-detail.tsx index 4f986c58e4..f0ba697228 100644 --- a/packages/admin/dashboard/src/routes/customers/customer-detail/customer-detail.tsx +++ b/packages/admin/dashboard/src/routes/customers/customer-detail/customer-detail.tsx @@ -7,6 +7,7 @@ import { useCustomer } from "../../../hooks/api/customers" import { CustomerGeneralSection } from "./components/customer-general-section" import { CustomerGroupSection } from "./components/customer-group-section" import { customerLoader } from "./loader" +import { CustomerOrderSection } from "./components/customer-order-section" export const CustomerDetail = () => { const { id } = useParams() @@ -40,9 +41,7 @@ export const CustomerDetail = () => { showMetadata > - {/* - // TODO: re-add when order endpoints are added to api-v2 - */} + ) diff --git a/packages/core/types/src/http/order/admin/queries.ts b/packages/core/types/src/http/order/admin/queries.ts index 8aed6321ab..725f350943 100644 --- a/packages/core/types/src/http/order/admin/queries.ts +++ b/packages/core/types/src/http/order/admin/queries.ts @@ -8,7 +8,8 @@ export interface AdminOrderFilters extends FindParams, BaseOrderFilters { sales_channel_id?: string[] fulfillment_status?: FulfillmentStatus[] payment_status?: PaymentStatus[] - region_id?: string[] + region_id?: string[] | string + customer_id?: string[] | string q?: string created_at?: OperatorMap updated_at?: OperatorMap diff --git a/packages/medusa/src/api/admin/orders/validators.ts b/packages/medusa/src/api/admin/orders/validators.ts index df6661369c..49a2cfb412 100644 --- a/packages/medusa/src/api/admin/orders/validators.ts +++ b/packages/medusa/src/api/admin/orders/validators.ts @@ -51,7 +51,8 @@ export const AdminGetOrdersParams = createFindParams({ sales_channel_id: z.array(z.string()).optional(), fulfillment_status: z.array(z.string()).optional(), payment_status: z.array(z.string()).optional(), - region_id: z.array(z.string()).optional(), + region_id: z.union([z.string(), z.array(z.string())]).optional(), + customer_id: z.union([z.string(), z.array(z.string())]).optional(), q: z.string().optional(), created_at: createOperatorMap().optional(), updated_at: createOperatorMap().optional(),