07abc2b1eb
* feat: 470 edit orders hook and @vegaprotocol/vegawallet-service-api-client@0.4.14 * fix: 470 add methods for dialog intent and title * fix: #657 rename order-list lib to orders * chore: #657 move hooks to orders lib * chore: #657 vega tx dialog used for order cancellation and order submission * chore: #657 use client subscribe and unsubscribe on reset, refactor vegatxdialog * fix: #657 revert script src=./env-config.js ending * fix: #657 format project.json * Update project.json * fix: #657 cancel all subs and async tasks in useffect cleanup function * feat: #657 styling updates on vega order dialog * fix: #657 rename set dialog open and awaiting confirmation dialog update * fix: #657 updates on cancel order id check * fix: #657 fix vega tx dialog test * fix: #657 fix cypress trading-deal-tciket test * fix: #657 fix data-testid market test * Update libs/orders/README.md Co-authored-by: Dexter Edwards <dexter.edwards93@gmail.com> * Update libs/wallet/src/vega-order-transaction-dialog/vega-order-transaction-dialog.tsx Co-authored-by: Dexter Edwards <dexter.edwards93@gmail.com> * Update libs/wallet/src/vega-transaction-dialog/vega-transaction-dialog.tsx Co-authored-by: Dexter Edwards <dexter.edwards93@gmail.com> * Update libs/wallet/src/vega-order-transaction-dialog/vega-order-transaction-dialog.tsx Co-authored-by: Dexter Edwards <dexter.edwards93@gmail.com> * Update libs/wallet/src/vega-order-transaction-dialog/vega-order-transaction-dialog.tsx Co-authored-by: Dexter Edwards <dexter.edwards93@gmail.com> * fix: #657 remove the magic string and use the ordertype enum from types package * fix: #657 guarantee that order.id is present at this point or we need to determine the id of the order * fix: #657 fix translation in dialog * fix: #657 rename wallet types, delete ticket query, set finalized order null in submit * fix: #657 fix deal ticket steps test * fix: #657 remove settings.json * fix: #657 use order submit in orders lib * fix: #463 final modal links to block explorer * fix: #745 long/short instead of buy/sell * fix: #657 use only one vega tx dialog * fix: #657 keep ref of subscription and unsubscribe * fix: #657 hide cancelled orders * fix: #657 sub only when id set * fix: WIP: trying to unsub when order updated * fix: #745 long/short instead of buy/sell * fix: ensure observable defined * fix: #657 remove redundant test * Update libs/orders/src/lib/order-hooks/use-order-submit.ts * fix: failing test due to resizeobserver loop limit exceeded * fix: lint * fix: #657 fix test resize observer loop limit exceeded Co-authored-by: Dexter Edwards <dexter.edwards93@gmail.com> Co-authored-by: Matthew Russell <mattrussell36@gmail.com> Co-authored-by: Joe <joe@vega.xyz>
99 lines
3.0 KiB
TypeScript
99 lines
3.0 KiB
TypeScript
import { Web3Container } from '../../components/web3-container';
|
|
import { t } from '@vegaprotocol/react-helpers';
|
|
import { PositionsContainer } from '@vegaprotocol/positions';
|
|
import { OrderListContainer } from '@vegaprotocol/orders';
|
|
import { AccountsContainer } from '@vegaprotocol/accounts';
|
|
import { AnchorButton, Tab, Tabs } from '@vegaprotocol/ui-toolkit';
|
|
import { WithdrawalsContainer } from './withdrawals/withdrawals-container';
|
|
import { FillsContainer } from '@vegaprotocol/fills';
|
|
import classNames from 'classnames';
|
|
import type { ReactNode } from 'react';
|
|
|
|
const Portfolio = () => {
|
|
const wrapperClasses = classNames(
|
|
'h-full max-h-full',
|
|
'grid gap-4 grid-rows-[1fr_300px]',
|
|
'bg-black-10 dark:bg-white-10',
|
|
'text-ui'
|
|
);
|
|
const tabContentClassName = 'h-full grid gap-4 grid-rows-[min-content_1fr]';
|
|
return (
|
|
<div className={wrapperClasses}>
|
|
<PortfolioGridChild>
|
|
<Tabs>
|
|
<Tab id="positions" name={t('Positions')}>
|
|
<div className={tabContentClassName}>
|
|
<h4 className="text-h4 text-black dark:text-white p-8">
|
|
{t('Positions')}
|
|
</h4>
|
|
<div>
|
|
<PositionsContainer />
|
|
</div>
|
|
</div>
|
|
</Tab>
|
|
<Tab id="orders" name={t('Orders')}>
|
|
<div className={tabContentClassName}>
|
|
<h4 className="text-h4 text-black dark:text-white p-8">
|
|
{t('Orders')}
|
|
</h4>
|
|
<div>
|
|
<OrderListContainer />
|
|
</div>
|
|
</div>
|
|
</Tab>
|
|
<Tab id="fills" name={t('Fills')}>
|
|
<div className={tabContentClassName}>
|
|
<h4 className="text-h4 text-black dark:text-white p-8">
|
|
{t('Fills')}
|
|
</h4>
|
|
<div>
|
|
<FillsContainer />
|
|
</div>
|
|
</div>
|
|
</Tab>
|
|
</Tabs>
|
|
</PortfolioGridChild>
|
|
<PortfolioGridChild>
|
|
<Tabs>
|
|
<Tab id="collateral" name={t('Collateral')}>
|
|
<AccountsContainer />
|
|
</Tab>
|
|
<Tab id="deposits" name={t('Deposits')}>
|
|
<div className={tabContentClassName}>
|
|
<div className="p-8">
|
|
<AnchorButton data-testid="deposit" href="/portfolio/deposit">
|
|
{t('Deposit')}
|
|
</AnchorButton>
|
|
</div>
|
|
</div>
|
|
</Tab>
|
|
<Tab id="withdrawals" name={t('Withdrawals')}>
|
|
<Web3Container>
|
|
<WithdrawalsContainer />
|
|
</Web3Container>
|
|
</Tab>
|
|
</Tabs>
|
|
</PortfolioGridChild>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
Portfolio.getInitialProps = () => ({
|
|
page: 'portfolio',
|
|
});
|
|
|
|
export default Portfolio;
|
|
|
|
interface PortfolioGridChildProps {
|
|
children: ReactNode;
|
|
className?: string;
|
|
}
|
|
|
|
const PortfolioGridChild = ({
|
|
children,
|
|
className,
|
|
}: PortfolioGridChildProps) => {
|
|
const gridChildClasses = classNames('bg-white dark:bg-black', className);
|
|
return <section className={gridChildClasses}>{children}</section>;
|
|
};
|