From d418dd77f23ab24e91dfebad94832f9496eb567d Mon Sep 17 00:00:00 2001 From: Navan Chauhan Date: Mon, 28 Apr 2025 00:20:28 -0600 Subject: prettifier --- client/src/components/BidsPage.jsx | 134 +++++++++++++++++++++++-------------- 1 file changed, 82 insertions(+), 52 deletions(-) (limited to 'client/src/components/BidsPage.jsx') diff --git a/client/src/components/BidsPage.jsx b/client/src/components/BidsPage.jsx index 2b97e99..3e596f0 100644 --- a/client/src/components/BidsPage.jsx +++ b/client/src/components/BidsPage.jsx @@ -1,56 +1,75 @@ -import React, { useEffect, useState } from 'react'; -import { Table, Typography, Spin, Message, Card, Empty, Badge } from '@arco-design/web-react'; -import { IconArrowRise, IconArrowFall } from '@arco-design/web-react/icon'; -import '@arco-design/web-react/dist/css/arco.css'; -import API_BASE_URL from '../config'; +import React, { useEffect, useState } from "react"; +import { + Table, + Typography, + Spin, + Message, + Card, + Empty, + Badge, +} from "@arco-design/web-react"; +import { IconArrowRise, IconArrowFall } from "@arco-design/web-react/icon"; +import "@arco-design/web-react/dist/css/arco.css"; +import API_BASE_URL from "../config"; const columns = (bids) => [ { - title: 'Timestamp', - dataIndex: 'timestamp', + title: "Timestamp", + dataIndex: "timestamp", sorter: (a, b) => new Date(a.timestamp) - new Date(b.timestamp), render: (val) => new Date(val).toLocaleString(), width: 180, }, { - title: 'Quantity (MW)', - dataIndex: 'quantity', + title: "Quantity (MW)", + dataIndex: "quantity", sorter: (a, b) => a.quantity - b.quantity, render: (val) => val.toFixed(2), width: 180, }, { - title: 'Price ($/MWh)', - dataIndex: 'price', + title: "Price ($/MWh)", + dataIndex: "price", sorter: (a, b) => a.price - b.price, render: (val) => `$${val.toFixed(2)}`, width: 180, }, { - title: 'Status', - dataIndex: 'status', + title: "Status", + dataIndex: "status", sorter: (a, b) => a.status.localeCompare(b.status), filters: [ - { text: 'Submitted', value: 'Submitted' }, - { text: 'Success', value: 'Success' }, - { text: 'Fail', value: 'Fail' }, + { text: "Submitted", value: "Submitted" }, + { text: "Success", value: "Success" }, + { text: "Fail", value: "Fail" }, ], onFilter: (value, record) => record.status === value, render: (val) => ( - + ), width: 180, }, { - title: 'PnL', - dataIndex: 'pnl', + title: "PnL", + dataIndex: "pnl", sorter: (a, b) => (a.pnl || 0) - (b.pnl || 0), render: (val) => { - if (val === null) return 'N/A'; + if (val === null) return "N/A"; const isProfit = val >= 0; - const color = isProfit ? 'green' : 'red'; + const color = isProfit ? "green" : "red"; return ( - + {isProfit ? : } {val.toFixed(2)} @@ -59,13 +78,13 @@ const columns = (bids) => [ width: 180, }, { - title: 'Market', - dataIndex: 'market', + title: "Market", + dataIndex: "market", sorter: (a, b) => a.market.localeCompare(b.market), filters: [ - { text: 'ISONE', value: 'ISONE' }, - { text: 'NYISO', value: 'NYISO' }, - { text: 'MISO', value: 'MISO' }, + { text: "ISONE", value: "ISONE" }, + { text: "NYISO", value: "NYISO" }, + { text: "MISO", value: "MISO" }, ], onFilter: (value, record) => record.market === value, render: (val) => val, @@ -80,20 +99,30 @@ function BidsPage() { useEffect(() => { fetch(`${API_BASE_URL}/bids/`) .then((res) => { - if (!res.ok) throw new Error('Failed to fetch bids'); + if (!res.ok) throw new Error("Failed to fetch bids"); return res.json(); }) .then((json) => setBids(json)) .catch((err) => { console.error(err); - Message.error('Failed to load bids.'); + Message.error("Failed to load bids."); }) .finally(() => setLoading(false)); }, []); return ( -
- +
+ Your Submitted Bids @@ -101,37 +130,38 @@ function BidsPage() { style={{ marginTop: 16, borderRadius: 16, - boxShadow: '0 8px 24px rgba(0,0,0,0.08)', - background: 'linear-gradient(135deg, rgba(255,255,255,0.95) 0%, rgba(245,245,245,0.95) 100%)', - backdropFilter: 'blur(8px)', - overflow: 'hidden', - padding: 20 + boxShadow: "0 8px 24px rgba(0,0,0,0.08)", + background: + "linear-gradient(135deg, rgba(255,255,255,0.95) 0%, rgba(245,245,245,0.95) 100%)", + backdropFilter: "blur(8px)", + overflow: "hidden", + padding: 20, }} > {loading ? ( -
+
) : bids.length === 0 ? ( -
+
) : (
- 'table-row-hover'} - /> +
"table-row-hover"} + /> )} -- cgit v1.2.3