fix(accounts): show breakdown in view as user mode (#3021)

This commit is contained in:
m.ray 2023-02-28 12:21:57 -05:00 committed by GitHub
parent 6b280d8a70
commit cc6ea6176a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 77 additions and 38 deletions

View File

@ -40,9 +40,9 @@ function App() {
<NetworkLoader cache={DEFAULT_CACHE_CONFIG}> <NetworkLoader cache={DEFAULT_CACHE_CONFIG}>
<AnnouncementBanner> <AnnouncementBanner>
<div className="font-alpha calt uppercase text-center text-lg text-white"> <div className="font-alpha calt uppercase text-center text-lg text-white">
<span className="pr-4">Mainnet sim 2 coming in March!</span> <span className="pr-4">Mainnet sim 2 is live!</span>
<ExternalLink href="https://fairground.wtf/"> <ExternalLink href="https://fairground.wtf/">
Learn more Come help stress test the network
</ExternalLink> </ExternalLink>
</div> </div>
</AnnouncementBanner> </AnnouncementBanner>

View File

@ -21,8 +21,10 @@ export function TemplateSidebar({ children, sidebar }: TemplateSidebarProps) {
<> <>
<AnnouncementBanner> <AnnouncementBanner>
<div className="font-alpha calt uppercase text-center text-lg text-white"> <div className="font-alpha calt uppercase text-center text-lg text-white">
<span className="pr-4">Mainnet sim 2 coming in March!</span> <span className="pr-4">Mainnet sim 2 is live!</span>
<ExternalLink href="https://fairground.wtf/">Learn more</ExternalLink> <ExternalLink href="https://fairground.wtf/">
Come help stress test the network
</ExternalLink>
</div> </div>
</AnnouncementBanner> </AnnouncementBanner>
<Nav navbarTheme={VEGA_ENV === Networks.TESTNET ? 'yellow' : 'dark'} /> <Nav navbarTheme={VEGA_ENV === Networks.TESTNET ? 'yellow' : 'dark'} />

View File

@ -125,9 +125,9 @@ describe('market info is displayed', { tags: '@smoke' }, () => {
validateMarketDataRow(1, 'Long', '0.008508132993273576'); validateMarketDataRow(1, 'Long', '0.008508132993273576');
}); });
it('price monitoring trigger displayed', () => { it('price monitoring bounds displayed', () => {
cy.getByTestId(marketTitle).contains('Price monitoring bounds 1').click(); cy.getByTestId(marketTitle).contains('Price monitoring bounds 1').click();
cy.get('p.col-span-1').contains('100% probability of trading'); cy.get('p.col-span-1').contains('99.99999% probability price bounds');
cy.get('p.col-span-1').contains('Within 43,200 seconds'); cy.get('p.col-span-1').contains('Within 43,200 seconds');
validateMarketDataRow(0, 'Highest Price', '7.97323 '); validateMarketDataRow(0, 'Highest Price', '7.97323 ');
validateMarketDataRow(1, 'Lowest Price', '6.54701 '); validateMarketDataRow(1, 'Lowest Price', '6.54701 ');

View File

@ -29,7 +29,7 @@ export const Banner = () => {
<Icon name="cross" className="w-6 h-6" ariaLabel="dismiss" /> <Icon name="cross" className="w-6 h-6" ariaLabel="dismiss" />
</button> </button>
<div> <div>
<span className="pr-4">Mainnet sim 2 coming in March!</span> <span className="pr-4">Mainnet sim 2 is live!</span>
<ExternalLink href="https://fairground.wtf/">Learn more</ExternalLink> <ExternalLink href="https://fairground.wtf/">Learn more</ExternalLink>
</div> </div>
</div> </div>

View File

@ -68,6 +68,32 @@ describe('AccountsTable', () => {
'1,256.00', '1,256.00',
'Breakdown', 'Breakdown',
'Deposit', 'Deposit',
'Withdraw',
];
cells.forEach((cell, i) => {
expect(cell).toHaveTextContent(expectedValues[i]);
});
const rows = await screen.findAllByRole('row');
expect(rows.length).toBe(6);
});
it('should apply correct formatting in view as user mode', async () => {
await act(async () => {
render(
<AccountTable
rowData={singleRowData}
onClickAsset={() => null}
isReadOnly={true}
/>
);
});
const cells = await screen.findAllByRole('gridcell');
const expectedValues = [
'tBTC',
'1,256.00',
'1,256.00',
'1,256.00',
'Breakdown',
]; ];
cells.forEach((cell, i) => { cells.forEach((cell, i) => {
expect(cell).toHaveTextContent(expectedValues[i]); expect(cell).toHaveTextContent(expectedValues[i]);

View File

@ -154,7 +154,7 @@ export const AccountTable = forwardRef<AgGridReact, AccountTableProps>(
} }
maxWidth={300} maxWidth={300}
/> />
{!props.isReadOnly && ( {
<AgGridColumn <AgGridColumn
colId="breakdown" colId="breakdown"
headerName="" headerName=""
@ -193,6 +193,7 @@ export const AccountTable = forwardRef<AgGridReact, AccountTableProps>(
{t('Breakdown')} {t('Breakdown')}
</ButtonLink> </ButtonLink>
<span className="mx-1" /> <span className="mx-1" />
{!props.isReadOnly && (
<ButtonLink <ButtonLink
data-testid="deposit" data-testid="deposit"
onClick={() => { onClick={() => {
@ -201,7 +202,9 @@ export const AccountTable = forwardRef<AgGridReact, AccountTableProps>(
> >
{t('Deposit')} {t('Deposit')}
</ButtonLink> </ButtonLink>
)}
<span className="mx-1" /> <span className="mx-1" />
{!props.isReadOnly && (
<ButtonLink <ButtonLink
data-testid="withdraw" data-testid="withdraw"
onClick={() => onClick={() =>
@ -210,12 +213,13 @@ export const AccountTable = forwardRef<AgGridReact, AccountTableProps>(
> >
{t('Withdraw')} {t('Withdraw')}
</ButtonLink> </ButtonLink>
)}
</> </>
); );
} }
}} }}
/> />
)} }
</AgGrid> </AgGrid>
<Dialog size="medium" open={openBreakdown} onChange={setOpenBreakdown}> <Dialog size="medium" open={openBreakdown} onChange={setOpenBreakdown}>
<div className="h-[35vh] w-full m-auto flex flex-col"> <div className="h-[35vh] w-full m-auto flex flex-col">

View File

@ -267,24 +267,24 @@ const FeesBreakdownTooltip = ({
data-testid="fee-breakdown-tooltip" data-testid="fee-breakdown-tooltip"
className="max-w-sm border border-neutral-600 bg-neutral-100 dark:bg-neutral-800 px-4 py-2 z-20 rounded text-sm break-word text-black dark:text-white" className="max-w-sm border border-neutral-600 bg-neutral-100 dark:bg-neutral-800 px-4 py-2 z-20 rounded text-sm break-word text-black dark:text-white"
> >
<dl className="grid grid-cols-2 gap-x-2"> <dl className="grid grid-cols-3 gap-x-1">
<dt>{t('Infrastructure fee')}</dt> <dt className="col-span-1">{t('Infrastructure fee')}</dt>
<dd className="text-right"> <dd className="text-right col-span-2">
{addDecimalsFormatNumber(feesObj.infrastructureFee, asset.decimals)}{' '} {addDecimalsFormatNumber(feesObj.infrastructureFee, asset.decimals)}{' '}
{asset.symbol} {asset.symbol}
</dd> </dd>
<dt>{t('Liquidity fee')}</dt> <dt className="col-span-1">{t('Liquidity fee')}</dt>
<dd className="text-right"> <dd className="text-right col-span-2">
{addDecimalsFormatNumber(feesObj.liquidityFee, asset.decimals)}{' '} {addDecimalsFormatNumber(feesObj.liquidityFee, asset.decimals)}{' '}
{asset.symbol} {asset.symbol}
</dd> </dd>
<dt>{t('Maker fee')}</dt> <dt className="col-span-1">{t('Maker fee')}</dt>
<dd className="text-right"> <dd className="text-right col-span-2">
{addDecimalsFormatNumber(feesObj.makerFee, asset.decimals)}{' '} {addDecimalsFormatNumber(feesObj.makerFee, asset.decimals)}{' '}
{asset.symbol} {asset.symbol}
</dd> </dd>
<dt>{t('Total fees')}</dt> <dt className="col-span-1">{t('Total fees')}</dt>
<dd className="text-right">{valueFormatted}</dd> <dd className="text-right col-span-2">{valueFormatted}</dd>
</dl> </dl>
</div> </div>
); );

View File

@ -317,8 +317,10 @@ export const Info = ({ market, onSelect }: InfoProps) => {
<div className="text-xs"> <div className="text-xs">
<div className="grid grid-cols-2 text-xs mb-4"> <div className="grid grid-cols-2 text-xs mb-4">
<p className="col-span-1"> <p className="col-span-1">
{t('%s% probability of trading', [ {t('%s probability price bounds', [
formatNumber(trigger.probability * 100), formatNumberPercentage(
new BigNumber(trigger.probability).times(100)
),
])} ])}
</p> </p>
<p className="col-span-1 text-right"> <p className="col-span-1 text-right">
@ -338,6 +340,11 @@ export const Info = ({ market, onSelect }: InfoProps) => {
/> />
)} )}
</div> </div>
<p className="mt-4">
{t('Results in %s seconds auction if breached', [
trigger.auctionExtensionSecs.toString(),
])}
</p>
</div> </div>
), ),
}; };

View File

@ -166,7 +166,7 @@ export const OrderListManager = ({
/> />
</div> </div>
</div> </div>
{hasActiveOrder && ( {!isReadOnly && hasActiveOrder && (
<div className="w-full dark:bg-black bg-white absolute bottom-0 h-auto flex justify-end px-[11px] py-2"> <div className="w-full dark:bg-black bg-white absolute bottom-0 h-auto flex justify-end px-[11px] py-2">
<Button <Button
size="sm" size="sm"

View File

@ -73,7 +73,7 @@ export const DropdownMenuContent = forwardRef<
<DropdownMenuPrimitive.Content <DropdownMenuPrimitive.Content
{...contentProps} {...contentProps}
ref={forwardedRef} ref={forwardedRef}
className="min-w-[290px] bg-neutral-200 dark:bg-white p-2 rounded" className="min-w-[290px] bg-neutral-200 dark:bg-white p-2 rounded text-black"
align="start" align="start"
sideOffset={10} sideOffset={10}
/> />