Fix unnecessary open orders rendering
This commit is contained in:
parent
f1c4d0386a
commit
5db9a61b35
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@project-serum/swap-ui",
|
"name": "@project-serum/swap-ui",
|
||||||
"version": "0.1.0-alpha.6",
|
"version": "0.1.0-alpha.8",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"types": "dist/index.d.ts",
|
"types": "dist/index.d.ts",
|
||||||
"homepage": ".",
|
"homepage": ".",
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { useState } from "react";
|
import { useState, useMemo } from "react";
|
||||||
import { PublicKey } from "@solana/web3.js";
|
import { PublicKey } from "@solana/web3.js";
|
||||||
import { MintInfo } from "@solana/spl-token";
|
import { MintInfo } from "@solana/spl-token";
|
||||||
import { BN } from "@project-serum/anchor";
|
import { BN } from "@project-serum/anchor";
|
||||||
|
@ -83,6 +83,12 @@ export default function OpenOrdersDialog({
|
||||||
function OpenOrdersAccounts() {
|
function OpenOrdersAccounts() {
|
||||||
const styles = useStyles();
|
const styles = useStyles();
|
||||||
const openOrders = useOpenOrders();
|
const openOrders = useOpenOrders();
|
||||||
|
const openOrdersEntries: Array<[PublicKey, OpenOrders[]]> = useMemo(() => {
|
||||||
|
return Array.from(openOrders.entries()).map(([market, oo]) => [
|
||||||
|
new PublicKey(market),
|
||||||
|
oo,
|
||||||
|
]);
|
||||||
|
}, [openOrders]);
|
||||||
return (
|
return (
|
||||||
<TableContainer component={Paper} elevation={0}>
|
<TableContainer component={Paper} elevation={0}>
|
||||||
<Table className={styles.table} aria-label="simple table">
|
<Table className={styles.table} aria-label="simple table">
|
||||||
|
@ -99,11 +105,11 @@ function OpenOrdersAccounts() {
|
||||||
</TableRow>
|
</TableRow>
|
||||||
</TableHead>
|
</TableHead>
|
||||||
<TableBody>
|
<TableBody>
|
||||||
{Array.from(openOrders.entries()).map(([market, oos]) => {
|
{openOrdersEntries.map(([market, oos]) => {
|
||||||
return (
|
return (
|
||||||
<OpenOrdersRow
|
<OpenOrdersRow
|
||||||
key={market}
|
key={market.toString()}
|
||||||
market={new PublicKey(market)}
|
market={market}
|
||||||
openOrders={oos}
|
openOrders={oos}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
|
|
@ -3,6 +3,11 @@ import { PublicKey } from "@solana/web3.js";
|
||||||
import { AccountInfo as TokenAccount } from "@solana/spl-token";
|
import { AccountInfo as TokenAccount } from "@solana/spl-token";
|
||||||
import { getOwnedTokenAccounts } from "../utils/tokens";
|
import { getOwnedTokenAccounts } from "../utils/tokens";
|
||||||
|
|
||||||
|
export type TokenContext = {
|
||||||
|
ownedTokenAccounts:
|
||||||
|
| { publicKey: PublicKey; account: TokenAccount }[]
|
||||||
|
| undefined;
|
||||||
|
};
|
||||||
const _TokenContext = React.createContext<TokenContext | null>(null);
|
const _TokenContext = React.createContext<TokenContext | null>(null);
|
||||||
|
|
||||||
export function TokenContextProvider(props: any) {
|
export function TokenContextProvider(props: any) {
|
||||||
|
@ -31,12 +36,6 @@ export function TokenContextProvider(props: any) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export type TokenContext = {
|
|
||||||
ownedTokenAccounts:
|
|
||||||
| { publicKey: PublicKey; account: TokenAccount }[]
|
|
||||||
| undefined;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Null => none exists.
|
// Null => none exists.
|
||||||
// Undefined => loading.
|
// Undefined => loading.
|
||||||
export function useOwnedTokenAccount(
|
export function useOwnedTokenAccount(
|
||||||
|
|
Loading…
Reference in New Issue