diff --git a/apps/hyperdrive-trading/src/ui/portfolio/ClosedOrdersTable/ClosedOrdersTable.tsx b/apps/hyperdrive-trading/src/ui/portfolio/ClosedLongsTable/ClosedLongsTable.tsx similarity index 70% rename from apps/hyperdrive-trading/src/ui/portfolio/ClosedOrdersTable/ClosedOrdersTable.tsx rename to apps/hyperdrive-trading/src/ui/portfolio/ClosedLongsTable/ClosedLongsTable.tsx index 46a68b66f..d9b21b6c1 100644 --- a/apps/hyperdrive-trading/src/ui/portfolio/ClosedOrdersTable/ClosedOrdersTable.tsx +++ b/apps/hyperdrive-trading/src/ui/portfolio/ClosedLongsTable/ClosedLongsTable.tsx @@ -2,32 +2,28 @@ import { ReactElement } from "react"; import { Hyperdrive } from "src/appconfig/types"; import { SortableGridTable } from "src/ui/base/components/tables/SortableGridTable"; -import { useClosedLongRows } from "src/ui/portfolio/ClosedOrdersTable/useClosedLongRows"; +import { useClosedLongRows } from "src/ui/portfolio/ClosedLongsTable/useClosedLongRows"; import { useAccount } from "wagmi"; -interface ClosedOrdersTableProps { +interface ClosedLongsTableProps { hyperdrive: Hyperdrive; } -export function ClosedOrdersTable({ +export function ClosedLongsTable({ hyperdrive, -}: ClosedOrdersTableProps): ReactElement { +}: ClosedLongsTableProps): ReactElement { const { address: account } = useAccount(); const { closedLongRows = [] } = useClosedLongRows({ account, hyperdrive: hyperdrive, }); - // TODO: Add useOpenShortRows hook - - const allRows = [...closedLongRows]; - return ( ); } diff --git a/apps/hyperdrive-trading/src/ui/portfolio/ClosedOrdersTable/useClosedLongRows.tsx b/apps/hyperdrive-trading/src/ui/portfolio/ClosedLongsTable/useClosedLongRows.tsx similarity index 100% rename from apps/hyperdrive-trading/src/ui/portfolio/ClosedOrdersTable/useClosedLongRows.tsx rename to apps/hyperdrive-trading/src/ui/portfolio/ClosedLongsTable/useClosedLongRows.tsx diff --git a/apps/hyperdrive-trading/src/ui/portfolio/OpenLongsTable/OpenLongsTable.tsx b/apps/hyperdrive-trading/src/ui/portfolio/OpenLongsTable/OpenLongsTable.tsx new file mode 100644 index 000000000..c750d7530 --- /dev/null +++ b/apps/hyperdrive-trading/src/ui/portfolio/OpenLongsTable/OpenLongsTable.tsx @@ -0,0 +1,31 @@ +/* eslint-disable react/jsx-key */ +import { ReactElement } from "react"; +import { Hyperdrive } from "src/appconfig/types"; +import { SortableGridTable } from "src/ui/base/components/tables/SortableGridTable"; +import { useOpenLongRows } from "src/ui/portfolio/OpenLongsTable/useOpenLongRows"; +import { useAccount } from "wagmi"; + +interface OpenOrdersTableProps { + hyperdrive: Hyperdrive; +} + +export function OpenLongsTable({ + hyperdrive, +}: OpenOrdersTableProps): ReactElement { + const { address: account } = useAccount(); + + const { openLongRows = [] } = useOpenLongRows({ + account, + hyperdrive, + }); + + return ( + + ); +} diff --git a/apps/hyperdrive-trading/src/ui/portfolio/OpenOrdersTable/useOpenLongRows.tsx b/apps/hyperdrive-trading/src/ui/portfolio/OpenLongsTable/useOpenLongRows.tsx similarity index 100% rename from apps/hyperdrive-trading/src/ui/portfolio/OpenOrdersTable/useOpenLongRows.tsx rename to apps/hyperdrive-trading/src/ui/portfolio/OpenLongsTable/useOpenLongRows.tsx diff --git a/apps/hyperdrive-trading/src/ui/portfolio/OpenOrdersTable/OpenOrdersTable.tsx b/apps/hyperdrive-trading/src/ui/portfolio/OpenShortsTable/OpenShortsTable.tsx similarity index 65% rename from apps/hyperdrive-trading/src/ui/portfolio/OpenOrdersTable/OpenOrdersTable.tsx rename to apps/hyperdrive-trading/src/ui/portfolio/OpenShortsTable/OpenShortsTable.tsx index a407deea9..3e3d8aeed 100644 --- a/apps/hyperdrive-trading/src/ui/portfolio/OpenOrdersTable/OpenOrdersTable.tsx +++ b/apps/hyperdrive-trading/src/ui/portfolio/OpenShortsTable/OpenShortsTable.tsx @@ -2,29 +2,22 @@ import { ReactElement } from "react"; import { Hyperdrive } from "src/appconfig/types"; import { SortableGridTable } from "src/ui/base/components/tables/SortableGridTable"; -import { useOpenLongRows } from "src/ui/portfolio/OpenOrdersTable/useOpenLongRows"; -import { useOpenShortRows } from "src/ui/portfolio/OpenOrdersTable/useOpenShortRows"; +import { useOpenShortRows } from "src/ui/portfolio/OpenShortsTable/useOpenShortRows"; import { useAccount } from "wagmi"; interface OpenOrdersTableProps { hyperdrive: Hyperdrive; } -export function OpenOrdersTable({ +export function OpenShortsTable({ hyperdrive, }: OpenOrdersTableProps): ReactElement { const { address: account } = useAccount(); - const { openLongRows: longRows = [] } = useOpenLongRows({ + const { openShortRows = [] } = useOpenShortRows({ account, hyperdrive, }); - const { openShortRows: shortRows = [] } = useOpenShortRows({ - account, - hyperdrive, - }); - - const allRows = [...longRows, ...shortRows]; return ( ); } diff --git a/apps/hyperdrive-trading/src/ui/portfolio/OpenOrdersTable/useOpenShortRows.tsx b/apps/hyperdrive-trading/src/ui/portfolio/OpenShortsTable/useOpenShortRows.tsx similarity index 100% rename from apps/hyperdrive-trading/src/ui/portfolio/OpenOrdersTable/useOpenShortRows.tsx rename to apps/hyperdrive-trading/src/ui/portfolio/OpenShortsTable/useOpenShortRows.tsx diff --git a/apps/hyperdrive-trading/src/ui/portfolio/PositionsSection/PositionsSection.tsx b/apps/hyperdrive-trading/src/ui/portfolio/PositionsSection/PositionsSection.tsx index 399119e78..e3be9452f 100644 --- a/apps/hyperdrive-trading/src/ui/portfolio/PositionsSection/PositionsSection.tsx +++ b/apps/hyperdrive-trading/src/ui/portfolio/PositionsSection/PositionsSection.tsx @@ -3,12 +3,13 @@ import classNames from "classnames"; import { ReactElement, useState } from "react"; import { Hyperdrive } from "src/appconfig/types"; import { Well } from "src/ui/base/components/Well/Well"; -import { ClosedOrdersTable } from "src/ui/portfolio/ClosedOrdersTable/ClosedOrdersTable"; +import { ClosedLongsTable } from "src/ui/portfolio/ClosedLongsTable/ClosedLongsTable"; +import { OpenLongsTable } from "src/ui/portfolio/OpenLongsTable/OpenLongsTable"; import { OpenOrClosedTab, OpenOrClosedTabs, } from "src/ui/portfolio/OpenOrClosedTabs/OpenOrClosedTabs"; -import { OpenOrdersTable } from "src/ui/portfolio/OpenOrdersTable/OpenOrdersTable"; +import { OpenShortsTable } from "src/ui/portfolio/OpenShortsTable/OpenShortsTable"; type PositionTab = "Longs" | "Shorts" | "LP"; @@ -69,14 +70,21 @@ export function PositionsSection({ {(() => { switch (activePositionTab) { - case "Longs": - return ; - case "Shorts": - return ; - case "LP": - { - /* TODO: Wire this up */ + case "Longs": { + if (activeOpenOrClosedTab === "Open") { + return ; + } + return ; + } + case "Shorts": { + if (activeOpenOrClosedTab === "Open") { + return ; } + // TODO: Wire this up + return ; + } + case "LP": + /* TODO: Wire this up */ return Under construction; default: assertNever(activePositionTab); diff --git a/packages/hyperdrive/src/amm/events/decodeAssetFromTransferSingleEventData.ts b/packages/hyperdrive/src/amm/events/decodeAssetFromTransferSingleEventData.ts index b3d85efd6..c5f20bd67 100644 --- a/packages/hyperdrive/src/amm/events/decodeAssetFromTransferSingleEventData.ts +++ b/packages/hyperdrive/src/amm/events/decodeAssetFromTransferSingleEventData.ts @@ -10,8 +10,8 @@ import { Hash } from "viem"; export type AssetType = "LP" | "LONG" | "SHORT" | "WITHDRAWAL_SHARE"; /** - * Decodes an encoded asset ID into it's constituent parts: an assetType and - * timestamp. + * Decodes a TransferSingle event.data into it's constituent parts: an assetType + * and timestamp (if it exists). */ export function decodeAssetFromTransferSingleEventData(eventData: Hash): { assetType: AssetType;