From 5e9a180908d99efd7f298342eda2f1c996343f0b Mon Sep 17 00:00:00 2001 From: jackburrus Date: Mon, 16 Oct 2023 13:51:18 -0600 Subject: [PATCH 1/4] fix theme --- .../src/ui/markets/MarketsTable/MarketsTable.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/hyperdrive-trading/src/ui/markets/MarketsTable/MarketsTable.tsx b/apps/hyperdrive-trading/src/ui/markets/MarketsTable/MarketsTable.tsx index d9a90676e..442e1bb11 100644 --- a/apps/hyperdrive-trading/src/ui/markets/MarketsTable/MarketsTable.tsx +++ b/apps/hyperdrive-trading/src/ui/markets/MarketsTable/MarketsTable.tsx @@ -57,12 +57,12 @@ export function MarketsTable(): ReactElement { }, [marketsRowData, protocolFilter, termLengthFilter]); return ( -
+
{/* Markets sortable table */}
Date: Mon, 16 Oct 2023 18:26:09 -0600 Subject: [PATCH 2/4] columns setup --- .../ui/markets/MarketsTable/MarketsTable.tsx | 129 +++++++++++------- 1 file changed, 77 insertions(+), 52 deletions(-) diff --git a/apps/hyperdrive-trading/src/ui/markets/MarketsTable/MarketsTable.tsx b/apps/hyperdrive-trading/src/ui/markets/MarketsTable/MarketsTable.tsx index 442e1bb11..26ccd758d 100644 --- a/apps/hyperdrive-trading/src/ui/markets/MarketsTable/MarketsTable.tsx +++ b/apps/hyperdrive-trading/src/ui/markets/MarketsTable/MarketsTable.tsx @@ -1,11 +1,14 @@ +import { + createColumnHelper, + flexRender, + getCoreRowModel, + useReactTable, +} from "@tanstack/react-table"; import uniqBy from "lodash.uniqby"; -import { ReactElement, useMemo, useState } from "react"; +import { ReactElement, useState } from "react"; import { convertMillisecondsToDays } from "src/base/convertMillisecondsToDays"; import { useAppConfig } from "src/ui/appconfig/useAppConfig"; -import { - Row, - SortableGridTable, -} from "src/ui/base/components/tables/SortableGridTable"; +import { Row } from "src/ui/base/components/tables/SortableGridTable"; import { formatBalance } from "src/ui/base/formatting/formatBalance"; import { MarketTableRowData, @@ -17,6 +20,25 @@ import { usePublicClient } from "wagmi"; const ALL_PROTOCOLS_KEY = "All Markets"; const ALL_TERM_LENGTHS_KEY = 0; +const columnHelper = createColumnHelper(); + +function columns() { + return [ + columnHelper.accessor("market.name", { + header: "Name", + cell: ({ getValue, row }) => { + const marketName = getValue(); + return ( + +

{marketName}

+ +
+ ); + }, + }), + ]; +} + export function MarketsTable(): ReactElement { const { appConfig: config } = useAppConfig(); const publicClient = usePublicClient(); @@ -38,55 +60,58 @@ export function MarketsTable(): ReactElement { // TODO: no loading state for now const { data: marketsRowData = [], status: marketRowDataStatus } = useMarketRowData(config?.hyperdrives); - - const filteredMarkets = useMemo(() => { - const marketFilteredByTermLength = termLengthFilter - ? marketsRowData.filter( - (marketRowData) => - marketRowData.market.termLengthMS === termLengthFilter, - ) - : marketsRowData; - - if (protocolFilter !== ALL_PROTOCOLS_KEY) { - return marketFilteredByTermLength.filter( - (marketRowData) => marketRowData.market.yieldSource === protocolFilter, - ); - } - - return marketFilteredByTermLength; - }, [marketsRowData, protocolFilter, termLengthFilter]); + const tableInstance = useReactTable({ + columns: columns(), + data: marketsRowData || [], + getCoreRowModel: getCoreRowModel(), + }); return ( -
- {/* Markets sortable table */} -
- - createMarketRow(marketRowData), - )} - showSkeleton={marketRowDataStatus === "loading"} - /> -
+
+ + + {tableInstance.getHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => ( + + ))} + + ))} + + + {tableInstance.getRowModel().rows.map((row) => { + return ( + { + console.log("handle go to market"); + }} + > + <> + {row.getVisibleCells().map((cell) => { + return ( + + ); + })} + + + ); + })} + +
+ {header.isPlaceholder + ? null + : flexRender( + header.column.columnDef.header, + header.getContext(), + )} +
+ {flexRender( + cell.column.columnDef.cell, + cell.getContext(), + )} +
); } From f71937386c825eafe16b66e744d9a01f699eda06 Mon Sep 17 00:00:00 2001 From: jackburrus Date: Tue, 17 Oct 2023 07:25:38 -0600 Subject: [PATCH 3/4] simplify components --- .../MarketSelect/AllMarketsBreadcrumb.tsx | 16 +-- .../ui/markets/MarketsTable/MarketsTable.tsx | 110 ++++++++---------- .../OpenShortsTable/OpenShortsTable.tsx | 2 +- 3 files changed, 53 insertions(+), 75 deletions(-) diff --git a/apps/hyperdrive-trading/src/ui/markets/MarketSelect/AllMarketsBreadcrumb.tsx b/apps/hyperdrive-trading/src/ui/markets/MarketSelect/AllMarketsBreadcrumb.tsx index f8f19070d..4584d14e5 100644 --- a/apps/hyperdrive-trading/src/ui/markets/MarketSelect/AllMarketsBreadcrumb.tsx +++ b/apps/hyperdrive-trading/src/ui/markets/MarketSelect/AllMarketsBreadcrumb.tsx @@ -2,14 +2,14 @@ import { ReactElement } from "react"; import { Modal } from "src/ui/base/components/Modal/Modal"; import { MarketsTable } from "src/ui/markets/MarketsTable/MarketsTable"; -const MARKETS_MODAL_KEY = "MARKETS_MODAL"; +export const MARKETS_MODAL_KEY = "MARKETS_MODAL"; export function AllMarketsBreadcrumb(): ReactElement { return ( } + modalContent={} > {({ showModal }) => (