diff --git a/.env b/.env index 52f1c95..df8604e 100644 --- a/.env +++ b/.env @@ -1,3 +1,3 @@ VITE_TOKEN_NAME = 'negareh_t' VITE_REFRESH_TOKEN_NAME = 'negareh_rt' -VITE_API_BASE_URL = 'http://10.24.161.1:4000' +VITE_API_BASE_URL = 'http://192.168.99.225:4000' diff --git a/src/pages/order/MyOrders.tsx b/src/pages/order/MyOrders.tsx index 4b970bc..5b43855 100644 --- a/src/pages/order/MyOrders.tsx +++ b/src/pages/order/MyOrders.tsx @@ -3,10 +3,12 @@ import { useState, type FC } from 'react' import { TabMyOrdersEnum } from './enum/OrderEnum' import Filters from '@/components/Filters' import Button from '@/components/Button' -import { AddSquare } from 'iconsax-react' +import { AddSquare, Eye } from 'iconsax-react' import Table from '@/components/Table' import { useGetMyOrders } from './hooks/useOrderData' import moment from 'moment-jalaali' +import { Link } from 'react-router-dom' +import { Paths } from '@/config/Paths' const MyOrders: FC = () => { const [page, setPage] = useState(1) @@ -101,6 +103,16 @@ const MyOrders: FC = () => { { key: 'actions', title: '', + render: (item) => { + return ( + + + + ) + } } ]} data={data?.data} diff --git a/src/pages/order/OrderDetail.tsx b/src/pages/order/OrderDetail.tsx index 4646308..d2a5bea 100644 --- a/src/pages/order/OrderDetail.tsx +++ b/src/pages/order/OrderDetail.tsx @@ -3,8 +3,13 @@ import { Microphone, Paperclip2, Receipt1 } from 'iconsax-react' import Button from '@/components/Button' import UploadBox from '@/components/UploadBox' import Input from '@/components/Input' +import { useParams } from 'react-router-dom' +import { useGetOrderDetails } from './hooks/useOrderData' const OrderDetail: FC = () => { + + const { id } = useParams() + const { data } = useGetOrderDetails(id!) const [message, setMessage] = useState('') const [files, setFiles] = useState([]) @@ -28,7 +33,7 @@ const OrderDetail: FC = () => {
- سفارش #{orderData.orderId} + سفارش #{data?.data?.orderNumber}
@@ -42,38 +47,49 @@ const OrderDetail: FC = () => { پیش فاکتور -
- {/* Product Image */} -
-
+
+ { + data?.data?.items?.map((item) => { + return ( +
+
+ {/* Product Image */} +
+ +
- {/* Order Details */} -
-
-
عنوان:
-
{orderData.title}
-
-
-
نام طرح:
-
{orderData.designer}
-
-
-
تعداد:
-
{orderData.quantity}
-
-
-
تخمین زمان:
-
{orderData.estimatedDate}
-
-
-
+ {/* Order Details */} +
+
+
عنوان:
+
{item.product.title}
+
+
+
نام طرح:
+
{orderData.designer}
+
+
+
تعداد:
+
{item.quantity}
+
+
+
تخمین زمان:
+
{data?.data?.estimatedDays}
+
+
+
- {/* Order Description */} -
-
شرح سفارش:
-

- {orderData.description} -

+ {/* Order Description */} +
+
شرح سفارش:
+

+ {item.description} +

+
+
+ ) + }) + }
diff --git a/src/pages/order/hooks/useOrderData.ts b/src/pages/order/hooks/useOrderData.ts index f6566fb..92d4d12 100644 --- a/src/pages/order/hooks/useOrderData.ts +++ b/src/pages/order/hooks/useOrderData.ts @@ -17,7 +17,15 @@ export const useSubmitOrder = () => { export const useGetMyOrders = (page: number = 1, statuses: TabMyOrdersEnum) => { return useQuery({ - queryKey: ["products", page, statuses], + queryKey: ["my-orders", page, statuses], queryFn: () => api.getMyOrders(page, statuses), }); }; + +export const useGetOrderDetails = (id: string) => { + return useQuery({ + queryKey: ["order", id], + queryFn: () => api.getOrderDetails(id), + enabled: !!id, + }); +}; diff --git a/src/pages/order/service/OrderService.ts b/src/pages/order/service/OrderService.ts index 9162dd0..ba977dd 100644 --- a/src/pages/order/service/OrderService.ts +++ b/src/pages/order/service/OrderService.ts @@ -1,6 +1,7 @@ import axios from "@/config/axios"; import type { MyOrdersResponseType, + OrderDetailResponseType, OrderType, ProductsResponseType, } from "../type/Types"; @@ -12,7 +13,7 @@ export const getProducts = async () => { }; export const submitOrder = async (params: OrderType[]) => { - const { data } = await axios.post(`/public/order`, { items: params }); + const { data } = await axios.post(`/public/orders`, { items: params }); return data; }; @@ -48,3 +49,10 @@ export const getMyOrders = async ( ); return data; }; + +export const getOrderDetails = async (id: string) => { + const { data } = await axios.get( + `/public/orders/${id}`, + ); + return data; +}; diff --git a/src/pages/order/type/Types.ts b/src/pages/order/type/Types.ts index 69c9612..723151d 100644 --- a/src/pages/order/type/Types.ts +++ b/src/pages/order/type/Types.ts @@ -97,3 +97,5 @@ export interface MyOrderType extends RowDataType { } export type MyOrdersResponseType = BaseResponse; + +export type OrderDetailResponseType = BaseResponse;