diff --git a/app/home/(user)/(dashboard)/order/page.tsx b/app/home/(user)/(dashboard)/order/page.tsx
index 4b1d747..57b11c5 100644
--- a/app/home/(user)/(dashboard)/order/page.tsx
+++ b/app/home/(user)/(dashboard)/order/page.tsx
@@ -7,10 +7,11 @@ import { PageBody } from '@kit/ui/makerkit/page';
import pathsConfig from '~/config/paths.config';
import { Trans } from '@kit/ui/trans';
import { HomeLayoutPageHeader } from '../../_components/home-page-header';
-import OrdersTable from '../../_components/orders/orders-table';
import { withI18n } from '~/lib/i18n/with-i18n';
-import type { IOrderLineItem } from '../../_components/orders/types';
import { getAnalysisOrders } from '~/lib/services/order.service';
+import OrderBlock from '../../_components/orders/order-block';
+import React from 'react';
+import { Divider } from '@medusajs/ui';
export async function generateMetadata() {
const { t } = await createI18nServerInstance();
@@ -29,42 +30,7 @@ async function OrdersPage() {
redirect(pathsConfig.auth.signIn);
}
- const analysisPackagesType = productTypes.find(({ metadata }) => metadata?.handle === 'analysis-packages');
- const analysisPackageOrders: IOrderLineItem[] = medusaOrders.flatMap(({ id, items, payment_status, fulfillment_status }) => items
- ?.filter((item) => item.product_type_id === analysisPackagesType?.id)
- .map((item) => {
- const localOrder = analysisOrders.find((order) => order.medusa_order_id === id);
- if (!localOrder) {
- return null;
- }
- return {
- item,
- medusaOrderId: id,
- orderId: localOrder?.id,
- orderStatus: localOrder.status,
- analysis_element_ids: localOrder.analysis_element_ids,
- }
- })
- .filter((order) => order !== null)
- || []);
-
- const otherOrders: IOrderLineItem[] = medusaOrders
- .filter(({ items }) => items?.some((item) => item.product_type_id !== analysisPackagesType?.id))
- .flatMap(({ id, items, payment_status, fulfillment_status }) => items
- ?.map((item) => {
- const analysisOrder = analysisOrders.find((order) => order.medusa_order_id === id);
- if (!analysisOrder) {
- return null;
- }
- return {
- item,
- medusaOrderId: id,
- orderId: analysisOrder.id,
- orderStatus: analysisOrder.status,
- }
- })
- .filter((order) => order !== null)
- || []);
+ const analysisPackagesType = productTypes.find(({ metadata }) => metadata?.handle === 'analysis-packages')!;
return (
<>
@@ -73,8 +39,27 @@ async function OrdersPage() {
description={}
/>
-
-
+ {analysisOrders.map((analysisOrder) => {
+ const medusaOrder = medusaOrders.find(({ id }) => id === analysisOrder.medusa_order_id);
+ if (!medusaOrder) {
+ return null;
+ }
+
+ const medusaOrderItems = medusaOrder.items || [];
+ const medusaOrderItemsAnalysisPackages = medusaOrderItems.filter((item) => item.product_type_id === analysisPackagesType?.id);
+ const medusaOrderItemsOther = medusaOrderItems.filter((item) => item.product_type_id !== analysisPackagesType?.id);
+
+ return (
+
+
+
+
+ )
+ })}
>
);
diff --git a/app/home/(user)/_components/orders/order-block.tsx b/app/home/(user)/_components/orders/order-block.tsx
new file mode 100644
index 0000000..077d761
--- /dev/null
+++ b/app/home/(user)/_components/orders/order-block.tsx
@@ -0,0 +1,36 @@
+import { AnalysisOrder } from "~/lib/services/order.service";
+import { Trans } from '@kit/ui/makerkit/trans';
+import { StoreOrderLineItem } from "@medusajs/types";
+import OrderItemsTable from "./order-items-table";
+import Link from "next/link";
+import { Eye } from "lucide-react";
+
+export default function OrderBlock({ analysisOrder, itemsAnalysisPackage, itemsOther }: {
+ analysisOrder: AnalysisOrder,
+ itemsAnalysisPackage: StoreOrderLineItem[],
+ itemsOther: StoreOrderLineItem[],
+}) {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
diff --git a/app/home/(user)/_components/orders/order-items-table.tsx b/app/home/(user)/_components/orders/order-items-table.tsx
new file mode 100644
index 0000000..48d502a
--- /dev/null
+++ b/app/home/(user)/_components/orders/order-items-table.tsx
@@ -0,0 +1,77 @@
+import { Trans } from '@kit/ui/trans';
+import {
+ Table,
+ TableBody,
+ TableHead,
+ TableRow,
+ TableHeader,
+ TableCell,
+} from '@kit/ui/table';
+import { StoreOrderLineItem } from "@medusajs/types";
+import { AnalysisOrder } from '~/lib/services/order.service';
+import { formatDate } from 'date-fns';
+import Link from 'next/link';
+import { Eye } from 'lucide-react';
+
+export default function OrderItemsTable({ items, title, analysisOrder }: {
+ items: StoreOrderLineItem[];
+ title: string;
+ analysisOrder: AnalysisOrder;
+}) {
+ if (!items || items.length === 0) {
+ return null;
+ }
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {items
+ .sort((a, b) => (a.created_at ?? "") > (b.created_at ?? "") ? -1 : 1)
+ .map((orderItem) => (
+
+
+
+ {orderItem.product_title}
+
+
+
+
+ {formatDate(orderItem.created_at, 'dd.MM.yyyy HH:mm')}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ))}
+
+
+ )
+}
diff --git a/app/home/(user)/_components/orders/orders-item.tsx b/app/home/(user)/_components/orders/orders-item.tsx
deleted file mode 100644
index ea8943d..0000000
--- a/app/home/(user)/_components/orders/orders-item.tsx
+++ /dev/null
@@ -1,43 +0,0 @@
-import {
- TableCell,
- TableRow,
-} from '@kit/ui/table';
-import { Eye } from "lucide-react";
-import Link from "next/link";
-import { formatDate } from "date-fns";
-import { IOrderLineItem } from "./types";
-import { Trans } from '@kit/ui/trans';
-
-export default function OrdersItem({ orderItem }: {
- orderItem: IOrderLineItem,
-}) {
- return (
-
-
-
- {orderItem.item.product_title}
-
-
-
-
- {formatDate(orderItem.item.created_at, 'dd.MM.yyyy HH:mm')}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- )
-}
diff --git a/app/home/(user)/_components/orders/orders-table.tsx b/app/home/(user)/_components/orders/orders-table.tsx
deleted file mode 100644
index 18f1872..0000000
--- a/app/home/(user)/_components/orders/orders-table.tsx
+++ /dev/null
@@ -1,44 +0,0 @@
-import { Trans } from '@kit/ui/trans';
-import {
- Table,
- TableBody,
- TableHead,
- TableRow,
- TableHeader,
-} from '@kit/ui/table';
-import OrdersItem from "./orders-item";
-import { IOrderLineItem } from "./types";
-
-export default function OrdersTable({ orderItems, title }: {
- orderItems: IOrderLineItem[];
- title: string;
-}) {
- if (!orderItems || orderItems.length === 0) {
- return null;
- }
-
- return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {orderItems
- .sort((a, b) => (a.item.created_at ?? "") > (b.item.created_at ?? "") ? -1 : 1)
- .map((orderItem) => ())}
-
-
- )
-}
diff --git a/app/home/(user)/_components/orders/types.ts b/app/home/(user)/_components/orders/types.ts
deleted file mode 100644
index 2c7140e..0000000
--- a/app/home/(user)/_components/orders/types.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { StoreOrderLineItem } from "@medusajs/types";
-
-export interface IOrderLineItem {
- item: StoreOrderLineItem;
- medusaOrderId: string;
- orderId: number;
- orderStatus: string;
-}