From 34d2332c0c88e91976d36e7072125fe5d3ab4ad6 Mon Sep 17 00:00:00 2001 From: phunt Date: Sun, 19 Feb 2023 10:50:29 +0700 Subject: [PATCH] table --- components/Table/ShipperReciveOrders.tsx | 215 +++++++++++++---------- 1 file changed, 120 insertions(+), 95 deletions(-) diff --git a/components/Table/ShipperReciveOrders.tsx b/components/Table/ShipperReciveOrders.tsx index 242ef16..493412d 100644 --- a/components/Table/ShipperReciveOrders.tsx +++ b/components/Table/ShipperReciveOrders.tsx @@ -2,111 +2,136 @@ import React, { useEffect, useState } from "react"; import { Button, message, Space, Table, Tag } from "antd"; import type { ColumnsType } from "antd/es/table"; import { Product, Shipper } from "../../types/shipper.types"; -import { getAllOrdersFromFirebase, getUserFromFirebase } from "../../utils/firebase"; +import { + getAllOrdersFromFirebase, + getUserFromFirebase, +} from "../../utils/firebase"; import { useRouter } from "next/router"; import { Users } from "../../types/user.types"; import convertToDongString from "../../utils/convert"; import moment from "moment"; const columns: ColumnsType = [ - { - title: "Ngày", - dataIndex: "create", - key: "create", - render: (create) => { - return ( -
-

{moment - .unix(create.seconds || 0) - .locale("vi") - .format("LLLL")}{" "}

-
- ); - }, + { + title: "Giờ giao hàng", + dataIndex: "deliveryTime", + key: "deliveryTime", + render: (deliveryTime) => { + return ( +
+

{deliveryTime}

+
+ ); }, - { - title: "Tổng tiền", - dataIndex: "products", - key: "products", - render: (products:Product[], t) => { - const total = products.reduce((a,b) => { - return a + b.product.price; - }, 0) - - return

{total + t.deliveryFee }

; - }, - }, - { - title: "Trạng thái", - dataIndex: "status", - key: "status", - render: (status) => { - return

{status}

; - }, + }, + { + title: "Tổng tiền", + dataIndex: "products", + key: "products", + render: (products: Product[], t) => { + const total = products.reduce((a, b) => { + return a + b.product.price; + }, 0); + + return

{total + t.deliveryFee}

; + }, + }, + { + title: "Trạng thái", + dataIndex: "status", + key: "status", + render: (status) => { + switch (status) { + case "pending": + return ( +

+ {status} +

+ ); + case "delivered": + return ( +

+ {status} +

+ ); + case "in transit": + return ( +

+ {status} +

+ ); + case "canceled": + return ( +

+ {status} +

+ ); + default: + break; + } + return

{status}

; }, - // { - // title: "Time left", - // dataIndex: "deliveryTime", - // key: "deliveryTime", - // render: (deliveryTime) => { - // const expiredDay = new Date(deliveryTime.seconds); - // const currentDay = new Date(); - // const timeLeft = expiredDay.getMinutes() - currentDay.getMinutes(); - // if (expiredDay{timeLeft}min; - // }, - // }, - { - title:"Action", - dataIndex:"id", - key: "id", - render:(id) =>{ - const router = useRouter(); - const handleOnClick = () => { - router.push("/shipper/"+id); - } - return ( -
- -
- ) - - }, + }, + // { + // title: "Time left", + // dataIndex: "deliveryTime", + // key: "deliveryTime", + // render: (deliveryTime) => { + // const expiredDay = new Date(deliveryTime.seconds); + // const currentDay = new Date(); + // const timeLeft = expiredDay.getMinutes() - currentDay.getMinutes(); + // if (expiredDay{timeLeft}min; + // }, + // }, + { + title: "Action", + dataIndex: "id", + key: "id", + render: (id) => { + const router = useRouter(); + const handleOnClick = () => { + router.push("/shipper/" + id); + }; + return ( +
+ +
+ ); }, - ]; - - const ShipperReciveOrders: React.FC = () => { - const [data, setOrders] = useState([]); - - useEffect(() => { - (async () => { - try { - const orders = await getAllOrdersFromFirebase(); - const x = orders.map(order =>( {...order.data, id:order.id})); - setOrders(x); - data.forEach(e => { - e.products.reduce((a,b) => a+b.product.price,0) - }); - } catch (error) { - console.log(error); - } - })(); - }, []); - - return ( -
+ }, +]; + +const ShipperReciveOrders: React.FC = () => { + const [data, setOrders] = useState([]); + + useEffect(() => { + (async () => { + try { + const orders = await getAllOrdersFromFirebase(); + const x = orders.map((order) => ({ ...order.data, id: order.id })); + setOrders(x); + data.forEach((e) => { + e.products.reduce((a, b) => a + b.product.price, 0); + }); + } catch (error) { + console.log(error); + } + })(); + }, []); + + return ( +
- - ); - }; - - export default ShipperReciveOrders; \ No newline at end of file + + ); +}; + +export default ShipperReciveOrders;