From b5ba4f99d9011e7ce8c8f47cbaa2aba2abc8709f Mon Sep 17 00:00:00 2001 From: Sam Keen Date: Mon, 4 Sep 2023 12:09:38 +0100 Subject: [PATCH 01/10] fix(governance,utils,react-helpers): token locale formatting issue (#4678) --- .../src/components/wallet-card/wallet-card.tsx | 17 +++++++++++++---- .../react-helpers/src/hooks/use-number-parts.ts | 2 +- libs/utils/src/lib/format/number.spec.ts | 16 ++++++++-------- libs/utils/src/lib/format/number.ts | 6 +++--- 4 files changed, 25 insertions(+), 16 deletions(-) diff --git a/apps/governance/src/components/wallet-card/wallet-card.tsx b/apps/governance/src/components/wallet-card/wallet-card.tsx index aa8b06e5f..6a1b1e5fa 100644 --- a/apps/governance/src/components/wallet-card/wallet-card.tsx +++ b/apps/governance/src/components/wallet-card/wallet-card.tsx @@ -54,7 +54,7 @@ export const WalletCardRow = ({ }) => { const ref = React.useRef(null); useAnimateValue(ref, value); - const [integers, decimalsPlaces] = useNumberParts(value, decimals); + const [integers, decimalsPlaces, separator] = useNumberParts(value, decimals); return (
- {integers}. + + {integers} + {separator} + {decimalsPlaces} )} @@ -110,7 +113,10 @@ export const WalletCardAsset = ({ border, subheading, }: WalletCardAssetProps) => { - const [integers, decimalsPlaces] = useNumberParts(balance, decimals); + const [integers, decimalsPlaces, separator] = useNumberParts( + balance, + decimals + ); return (
@@ -132,7 +138,10 @@ export const WalletCardAsset = ({
- {integers}. + + {integers} + {separator} + {decimalsPlaces}
diff --git a/libs/react-helpers/src/hooks/use-number-parts.ts b/libs/react-helpers/src/hooks/use-number-parts.ts index 606e854a8..2c3ba399d 100644 --- a/libs/react-helpers/src/hooks/use-number-parts.ts +++ b/libs/react-helpers/src/hooks/use-number-parts.ts @@ -5,6 +5,6 @@ import { toNumberParts } from '@vegaprotocol/utils'; export const useNumberParts = ( value: BigNumber | null | undefined, decimals: number -): [integers: string, decimalPlaces: string] => { +): [integers: string, decimalPlaces: string, separator: string | undefined] => { return useMemo(() => toNumberParts(value, decimals), [decimals, value]); }; diff --git a/libs/utils/src/lib/format/number.spec.ts b/libs/utils/src/lib/format/number.spec.ts index 119087fca..d30e14ab7 100644 --- a/libs/utils/src/lib/format/number.spec.ts +++ b/libs/utils/src/lib/format/number.spec.ts @@ -86,17 +86,17 @@ describe('number utils', () => { describe('toNumberParts', () => { it.each([ - { v: null, d: 3, o: ['0', '000'] }, - { v: undefined, d: 3, o: ['0', '000'] }, - { v: new BigNumber(123), d: 3, o: ['123', '00'] }, - { v: new BigNumber(123.123), d: 3, o: ['123', '123'] }, - { v: new BigNumber(123.123), d: 6, o: ['123', '123'] }, - { v: new BigNumber(123.123), d: 0, o: ['123', ''] }, - { v: new BigNumber(123), d: undefined, o: ['123', '00'] }, + { v: null, d: 3, o: ['0', '000', '.'] }, + { v: undefined, d: 3, o: ['0', '000', '.'] }, + { v: new BigNumber(123), d: 3, o: ['123', '00', '.'] }, + { v: new BigNumber(123.123), d: 3, o: ['123', '123', '.'] }, + { v: new BigNumber(123.123), d: 6, o: ['123', '123', '.'] }, + { v: new BigNumber(123.123), d: 0, o: ['123', '', '.'] }, + { v: new BigNumber(123), d: undefined, o: ['123', '00', '.'] }, { v: new BigNumber(30000), d: undefined, - o: ['30,000', '00'], + o: ['30,000', '00', '.'], }, ])('returns correct tuple given the different arguments', ({ v, d, o }) => { expect(toNumberParts(v, d)).toStrictEqual(o); diff --git a/libs/utils/src/lib/format/number.ts b/libs/utils/src/lib/format/number.ts index bf5a93ff4..261502a38 100644 --- a/libs/utils/src/lib/format/number.ts +++ b/libs/utils/src/lib/format/number.ts @@ -165,15 +165,15 @@ export const formatNumberPercentage = (value: BigNumber, decimals?: number) => { export const toNumberParts = ( value: BigNumber | null | undefined, decimals = 18 -): [integers: string, decimalPlaces: string] => { +): [integers: string, decimalPlaces: string, separator: string] => { if (!value) { - return ['0', '0'.repeat(decimals)]; + return ['0', '0'.repeat(decimals), '.']; } const separator = getDecimalSeparator() || '.'; const [integers, decimalsPlaces] = formatNumber(value, decimals) .toString() .split(separator); - return [integers, decimalsPlaces || '']; + return [integers, decimalsPlaces || '', separator]; }; export const isNumeric = ( From 1208d3f2a80357d66f51949926b279634586310a Mon Sep 17 00:00:00 2001 From: Matthew Russell Date: Mon, 4 Sep 2023 07:47:27 -0700 Subject: [PATCH 02/10] feat(market-depth): additional orderbook grouping levels (#4658) --- .../src/integration/order-book.cy.ts | 117 ------------------ .../src/lib/orderbook-controls.tsx | 85 +++++++++---- libs/market-depth/src/lib/orderbook-data.ts | 4 +- libs/market-depth/src/lib/orderbook-row.tsx | 6 +- libs/market-depth/src/lib/orderbook.spec.tsx | 95 +++++++++++--- libs/market-depth/src/lib/orderbook.tsx | 15 ++- 6 files changed, 161 insertions(+), 161 deletions(-) delete mode 100644 apps/trading-e2e/src/integration/order-book.cy.ts diff --git a/apps/trading-e2e/src/integration/order-book.cy.ts b/apps/trading-e2e/src/integration/order-book.cy.ts deleted file mode 100644 index 34cb68fce..000000000 --- a/apps/trading-e2e/src/integration/order-book.cy.ts +++ /dev/null @@ -1,117 +0,0 @@ -const orderbookTab = 'Orderbook'; -const orderbookTable = 'tab-orderbook'; -const askPrice = 'price-9894185'; -const bidPrice = 'price-9889001'; -const askVolume = 'ask-vol-9894185'; -const bidVolume = 'bid-vol-9889001'; -const askCumulative = 'cumulative-vol-9894185'; -const bidCumulative = 'cumulative-vol-9889001'; -const midPrice = 'last-traded-4612690000'; -const priceResolution = 'resolution'; -const dealTicketPrice = 'order-price'; -const dealTicketSize = 'order-size'; -const resPrice = 'price-990'; - -describe('order book', { tags: '@smoke' }, () => { - before(() => { - cy.setOnBoardingViewed(); - cy.mockTradingPage(); - cy.mockSubscription(); - cy.visit('/#/markets/market-0'); - cy.wait('@Markets'); - }); - - beforeEach(() => { - cy.mockTradingPage(); - }); - - it('show order book', () => { - // 6003-ORDB-001 - // 6003-ORDB-002 - cy.getByTestId(orderbookTab).click(); - cy.getByTestId(orderbookTable).should('be.visible'); - cy.getByTestId(orderbookTable).should('not.be.empty'); - }); - - it('show orders prices', () => { - // 6003-ORDB-003 - cy.getByTestId(askPrice).should('have.text', '98.94185'); - cy.getByTestId(bidPrice).should('have.text', '98.89001'); - }); - - it('show prices volumes', () => { - // 6003-ORDB-004 - cy.getByTestId(askVolume).should('have.text', '1'); - cy.getByTestId(bidVolume).should('have.text', '1'); - }); - - it('show prices cumulative volumes', () => { - // 6003-ORDB-005 - cy.getByTestId(askCumulative).should('have.text', '38'); - cy.getByTestId(bidCumulative).should('have.text', '7'); - }); - - it('show mid price', () => { - // 6003-ORDB-006 - cy.getByTestId(midPrice).should('have.text', '46,126.90'); - }); - - it('sort prices descending', () => { - // 6003-ORDB-007 - const prices: number[] = []; - cy.getByTestId(orderbookTable).within(() => { - cy.get('[data-testid*=price]') - .each(($el) => { - prices.push(Number($el.text())); - }) - .then(() => { - expect(prices).to.deep.equal(prices.sort((a, b) => b - a)); - }); - }); - }); - - it('copy price to deal ticket form', () => { - // 6003-ORDB-009 - cy.getByTestId(askPrice).click(); - cy.getByTestId(dealTicketPrice).should('have.value', '98.94185'); - }); - - it('copy size to deal ticket form', () => { - // 6003-ORDB-009 - cy.getByTestId(bidCumulative).click(); - cy.getByTestId(dealTicketSize).should('have.value', '7'); - }); - - it('copy size to deal ticket form', () => { - // 6003-ORDB-009 - cy.getByTestId(bidVolume).click(); - cy.getByTestId(dealTicketSize).should('have.value', '1'); - }); - - it('change price resolution', () => { - // 6003-ORDB-008 - const resolutions = [ - '0.00000', - '0.0000', - '0.000', - '0.00', - '0.0', - '0', - '10', - '100', - '1,000', - '10,000', - ]; - cy.getByTestId(priceResolution).click(); - cy.get('[role="menu"]') - .find('[role="menuitem"]') - .each(($el, index) => { - expect($el.text()).to.equal(resolutions[index]); - }); - - cy.get('[role="menuitem"]').eq(4).click(); - cy.getByTestId(resPrice).should('have.text', '99.0'); - cy.getByTestId(askPrice).should('not.exist'); - cy.getByTestId(bidPrice).should('not.exist'); - }); -}); diff --git a/libs/market-depth/src/lib/orderbook-controls.tsx b/libs/market-depth/src/lib/orderbook-controls.tsx index 62c3f6b0a..b41e146e2 100644 --- a/libs/market-depth/src/lib/orderbook-controls.tsx +++ b/libs/market-depth/src/lib/orderbook-controls.tsx @@ -7,7 +7,7 @@ import { TradingDropdownContent, TradingDropdownItem, } from '@vegaprotocol/ui-toolkit'; -import { formatNumberFixed } from '@vegaprotocol/utils'; +import { addDecimalsFormatNumber } from '@vegaprotocol/utils'; export const OrderbookControls = ({ lastTradedPrice, @@ -15,27 +15,14 @@ export const OrderbookControls = ({ decimalPlaces, setResolution, }: { - lastTradedPrice: string | undefined; + lastTradedPrice: string; resolution: number; decimalPlaces: number; setResolution: (resolution: number) => void; }) => { const [isOpen, setOpen] = useState(false); - const resolutions = new Array( - Math.max(lastTradedPrice?.toString().length ?? 0, decimalPlaces + 1) - ) - .fill(null) - .map((v, i) => Math.pow(10, i)); - - const formatResolution = (r: number) => { - return formatNumberFixed( - Math.log10(r) - decimalPlaces > 0 - ? Math.pow(10, Math.log10(r) - decimalPlaces) - : 0, - decimalPlaces - Math.log10(r) - ); - }; + const resolutions = createResolutions(lastTradedPrice, decimalPlaces); const increaseResolution = () => { const index = resolutions.indexOf(resolution); @@ -56,7 +43,7 @@ export const OrderbookControls = ({ } > {resolutions.map((r) => ( - setResolution(r)}> - {formatResolution(r)} + setResolution(r)} + className="justify-end" + > + {formatResolution(r, decimalPlaces)} ))} @@ -99,7 +92,7 @@ export const OrderbookControls = ({ +)); +MarketSelectorButton.displayName = 'MarketSelectorButton'; diff --git a/apps/trading/components/market-selector/market-selector-item.tsx b/apps/trading/components/market-selector/market-selector-item.tsx index b60ef54af..af54ecd66 100644 --- a/apps/trading/components/market-selector/market-selector-item.tsx +++ b/apps/trading/components/market-selector/market-selector-item.tsx @@ -31,7 +31,7 @@ export const MarketSelectorItem = ({
-

+

{market.tradableInstrument.instrument.code}{' '} {allProducts && productType && ( @@ -107,7 +107,7 @@ const MarketData = ({ )}

{volume}
-
+
{oneDayCandles && ( +
{Object.keys(Product).map((t) => { - const classes = classNames('px-3 py-1.5 rounded', { - 'bg-vega-clight-500 dark:bg-vega-cdark-500 text-default': - t === product, - 'text-secondary': t !== product, - }); + const classes = classNames( + 'text-sm px-3 py-1.5 rounded hover:text-vega-clight-50 dark:hover:text-vega-cdark-50', + { + 'bg-vega-clight-500 dark:bg-vega-cdark-500 text-default': + t === product, + 'text-secondary': t !== product, + } + ); return ( -
- - ); - } - - return <>{children}; -}; diff --git a/apps/trading/components/welcome-dialog/telemetry-approval.tsx b/apps/trading/components/welcome-dialog/telemetry-approval.tsx index 5b38c2963..0c21a4cd3 100644 --- a/apps/trading/components/welcome-dialog/telemetry-approval.tsx +++ b/apps/trading/components/welcome-dialog/telemetry-approval.tsx @@ -16,29 +16,32 @@ export const TelemetryApproval = ({ setTelemetryValue, }: Props) => { return ( -
+
-
+

{t( 'Help us identify bugs and improve Vega Governance by sharing anonymous usage data.' )} -

-
- -
-
{t('Anonymous')}
-
{t('Your identity is always anonymous on Vega')}
+

+
+ +
+
{t('Anonymous')}
+

+ {t('Your identity is always anonymous on Vega')} +

- -
- -
-
{t('Optional')}
-
{t('You can opt out any time via settings')}
+
+ +
+
{t('Optional')}
+

+ {t('You can opt out any time via settings')} +

-
+
setTelemetryValue('false')} size="small" diff --git a/apps/trading/components/welcome-dialog/welcome-dialog.tsx b/apps/trading/components/welcome-dialog/welcome-dialog.tsx index a3c42cdf1..7f7cbb06e 100644 --- a/apps/trading/components/welcome-dialog/welcome-dialog.tsx +++ b/apps/trading/components/welcome-dialog/welcome-dialog.tsx @@ -92,7 +92,7 @@ export const WelcomeDialog = () => { intent: Intent.Primary, content: ( <> -

+

{t('Improve vega console')}

- {t('Deposit')} - - + {t('Withdraw')} - - + {t('Transfer')} - - + {t('View usage breakdown')} - - + { openAssetDialog(assetId, e.target as HTMLElement); }} > {t('View asset details')} - - + + {assetContractAddress && ( - + - + )} ); diff --git a/libs/accounts/src/lib/accounts-table.tsx b/libs/accounts/src/lib/accounts-table.tsx index 847868230..413eb9338 100644 --- a/libs/accounts/src/lib/accounts-table.tsx +++ b/libs/accounts/src/lib/accounts-table.tsx @@ -11,9 +11,13 @@ import type { VegaValueFormatterParams, } from '@vegaprotocol/datagrid'; import { COL_DEFS } from '@vegaprotocol/datagrid'; -import { Button, VegaIcon, VegaIconNames } from '@vegaprotocol/ui-toolkit'; - -import { TooltipCellComponent } from '@vegaprotocol/ui-toolkit'; +import { + Intent, + TradingButton, + VegaIcon, + VegaIconNames, + TooltipCellComponent, +} from '@vegaprotocol/ui-toolkit'; import { AgGridLazy as AgGrid } from '@vegaprotocol/datagrid'; import type { IGetRowsParams, @@ -186,7 +190,7 @@ export const AccountTable = ({ ) : ( <> {valueFormatted} - + {t('0.00%')} @@ -248,26 +252,26 @@ export const AccountTable = ({ colId: 'accounts-actions', field: 'asset.id', ...COL_DEFS.actions, - minWidth: showDepositButton ? 130 : COL_DEFS.actions.minWidth, - maxWidth: showDepositButton ? 130 : COL_DEFS.actions.maxWidth, + minWidth: showDepositButton ? 105 : COL_DEFS.actions.minWidth, + maxWidth: showDepositButton ? 105 : COL_DEFS.actions.maxWidth, cellRenderer: ({ value: assetId, node, }: VegaICellRendererParams) => { if (!assetId) return null; - if (node.rowPinned && node.data?.total === '0') { + if (node.rowPinned && node.data?.balance === '0') { return ( - +
); } diff --git a/libs/accounts/src/lib/transfer-form.tsx b/libs/accounts/src/lib/transfer-form.tsx index a3e81c4c7..f0adcba94 100644 --- a/libs/accounts/src/lib/transfer-form.tsx +++ b/libs/accounts/src/lib/transfer-form.tsx @@ -8,7 +8,6 @@ import { } from '@vegaprotocol/utils'; import { t } from '@vegaprotocol/i18n'; import { - Button, TradingFormGroup, TradingInput, TradingInputError, @@ -16,6 +15,7 @@ import { TradingSelect, Tooltip, TradingCheckbox, + TradingButton, } from '@vegaprotocol/ui-toolkit'; import type { Transfer } from '@vegaprotocol/wallet'; import { normalizeTransfer } from '@vegaprotocol/wallet'; @@ -276,9 +276,9 @@ export const TransferForm = ({ decimals={asset?.decimals} /> )} - + ); }; @@ -309,8 +309,8 @@ export const TransferFee = ({ const totalValue = new BigNumber(transferAmount).plus(fee).toString(); return ( -
-
+
+
-
+
-
+
!curr); onChange(); }} - className="ml-auto text-sm absolute top-0 right-0 underline" + className="absolute top-0 right-0 ml-auto text-sm underline" > {isInput ? t('Select from wallet') : t('Enter manually')} diff --git a/libs/assets/src/lib/asset-details-dialog.tsx b/libs/assets/src/lib/asset-details-dialog.tsx index 1fb26fe48..9f2fa7503 100644 --- a/libs/assets/src/lib/asset-details-dialog.tsx +++ b/libs/assets/src/lib/asset-details-dialog.tsx @@ -2,9 +2,10 @@ import { t } from '@vegaprotocol/i18n'; import { Button, Dialog, - Icon, Splash, SyntaxHighlighter, + VegaIcon, + VegaIconNames, } from '@vegaprotocol/ui-toolkit'; import { create } from 'zustand'; import { AssetDetailsTable } from './asset-details-table'; @@ -82,7 +83,7 @@ export const AssetDetailsDialog = ({ return ( } + icon={} open={open} onChange={(isOpen) => onChange(isOpen)} onCloseAutoFocus={(e) => { @@ -97,7 +98,7 @@ export const AssetDetailsDialog = ({ }} > {content} -

+

{t( 'There is 1 unit of the settlement asset (%s) to every 1 quote unit.', [assetSymbol] diff --git a/libs/assets/src/lib/asset-details-table.tsx b/libs/assets/src/lib/asset-details-table.tsx index eca9a30a3..f6ef156a9 100644 --- a/libs/assets/src/lib/asset-details-table.tsx +++ b/libs/assets/src/lib/asset-details-table.tsx @@ -3,11 +3,8 @@ import { addDecimalsFormatNumber } from '@vegaprotocol/utils'; import { t } from '@vegaprotocol/i18n'; import type * as Schema from '@vegaprotocol/types'; import type { KeyValueTableRowProps } from '@vegaprotocol/ui-toolkit'; -import { - CopyWithTooltip, - Icon, - truncateMiddle, -} from '@vegaprotocol/ui-toolkit'; +import { VegaIcon, VegaIconNames } from '@vegaprotocol/ui-toolkit'; +import { CopyWithTooltip, truncateMiddle } from '@vegaprotocol/ui-toolkit'; import { KeyValueTable, KeyValueTableRow, @@ -118,7 +115,7 @@ export const rows: Rows = [ {' '} diff --git a/libs/candles-chart/src/lib/candles-menu.spec.tsx b/libs/candles-chart/src/lib/candles-menu.spec.tsx index 85f8b5b24..9289581bd 100644 --- a/libs/candles-chart/src/lib/candles-menu.spec.tsx +++ b/libs/candles-chart/src/lib/candles-menu.spec.tsx @@ -3,7 +3,7 @@ import userEvent from '@testing-library/user-event'; import { CandlesMenu } from './candles-menu'; describe('CandlesMenu', () => { - it('should render with volume study showing by default', async () => { + it('should render with the correct default studies', async () => { render(); await userEvent.click( @@ -13,5 +13,21 @@ describe('CandlesMenu', () => { ); expect(await screen.findByRole('menu')).toBeInTheDocument(); expect(screen.getByText('Volume')).toHaveAttribute('data-state', 'checked'); + expect(screen.getByText('MACD')).toHaveAttribute('data-state', 'checked'); + }); + + it('should render with the correct default overlays', async () => { + render(); + + await userEvent.click( + screen.getByRole('button', { + name: 'Overlays', + }) + ); + expect(await screen.findByRole('menu')).toBeInTheDocument(); + expect(screen.getByText('Moving average')).toHaveAttribute( + 'data-state', + 'checked' + ); }); }); diff --git a/libs/candles-chart/src/lib/use-candles-chart-settings.ts b/libs/candles-chart/src/lib/use-candles-chart-settings.ts index 78e5f81f9..cce6fb5b5 100644 --- a/libs/candles-chart/src/lib/use-candles-chart-settings.ts +++ b/libs/candles-chart/src/lib/use-candles-chart-settings.ts @@ -15,8 +15,8 @@ interface StoredSettings { const DEFAULT_CHART_SETTINGS = { interval: Interval.I15M, type: ChartType.CANDLE, - overlays: [], - studies: [Study.VOLUME], + overlays: [Overlay.MOVING_AVERAGE], + studies: [Study.MACD, Study.VOLUME], }; export const useCandlesChartSettingsStore = create< diff --git a/libs/deposits/src/lib/deposit-form.spec.tsx b/libs/deposits/src/lib/deposit-form.spec.tsx index b6f226cc3..7a6af6fb3 100644 --- a/libs/deposits/src/lib/deposit-form.spec.tsx +++ b/libs/deposits/src/lib/deposit-form.spec.tsx @@ -305,9 +305,7 @@ describe('Deposit form', () => { target: { value: '8' }, }); - fireEvent.click( - screen.getByText('Deposit', { selector: '[type="submit"]' }) - ); + fireEvent.click(screen.getByRole('button', { name: 'Deposit' })); await waitFor(() => { expect(props.submitDeposit).toHaveBeenCalledWith({ diff --git a/libs/deposits/src/lib/deposit-form.tsx b/libs/deposits/src/lib/deposit-form.tsx index 0044592c2..0bee8999f 100644 --- a/libs/deposits/src/lib/deposit-form.tsx +++ b/libs/deposits/src/lib/deposit-form.tsx @@ -13,7 +13,6 @@ import { import { t } from '@vegaprotocol/i18n'; import { useLocalStorage } from '@vegaprotocol/react-helpers'; import { - Button, TradingFormGroup, TradingInput, TradingInputError, @@ -23,6 +22,7 @@ import { ButtonLink, TradingSelect, truncateMiddle, + TradingButton, } from '@vegaprotocol/ui-toolkit'; import { useVegaWallet } from '@vegaprotocol/wallet'; import { useWeb3React } from '@web3-react/core'; @@ -186,14 +186,14 @@ export const DepositForm = ({ ); } return ( - + ); }} /> @@ -435,15 +435,14 @@ const FormButton = ({ approved, selectedAsset }: FormButtonProps) => { />

)} - + ); }; @@ -455,7 +454,7 @@ const UseButton = (props: UseButtonProps) => {
)} - +
); diff --git a/libs/orders/src/lib/components/order-list/order-list.tsx b/libs/orders/src/lib/components/order-list/order-list.tsx index aca064bd0..8c7218d7d 100644 --- a/libs/orders/src/lib/components/order-list/order-list.tsx +++ b/libs/orders/src/lib/components/order-list/order-list.tsx @@ -10,7 +10,7 @@ import { ActionsDropdown, ButtonLink, TradingDropdownCopyItem, - DropdownMenuItem, + TradingDropdownItem, VegaIcon, VegaIconNames, } from '@vegaprotocol/ui-toolkit'; @@ -277,7 +277,7 @@ export const OrderListTable = memo< if (!data) return null; return ( -
+
{isOrderAmendable(data) && !props.isReadOnly && ( <> {!data.icebergOrder && ( @@ -301,14 +301,14 @@ export const OrderListTable = memo< value={data.id} text={t('Copy order ID')} /> - onView(data)} > {t('View order details')} - +
); diff --git a/libs/orders/src/lib/components/stop-orders-table/stop-orders-table.tsx b/libs/orders/src/lib/components/stop-orders-table/stop-orders-table.tsx index 9af429a0e..5c8a9e049 100644 --- a/libs/orders/src/lib/components/stop-orders-table/stop-orders-table.tsx +++ b/libs/orders/src/lib/components/stop-orders-table/stop-orders-table.tsx @@ -12,7 +12,7 @@ import { ButtonLink, VegaIcon, VegaIconNames, - DropdownMenuItem, + TradingDropdownItem, TradingDropdownCopyItem, Pill, } from '@vegaprotocol/ui-toolkit'; @@ -246,7 +246,7 @@ export const StopOrdersTable = memo( if (!data) return null; return ( -
+
{data.status === Schema.StopOrderStatus.STATUS_PENDING && !props.isReadOnly && ( - @@ -273,7 +273,7 @@ export const StopOrdersTable = memo( > {t('View order details')} - + )}
diff --git a/libs/positions/src/lib/positions-table.spec.tsx b/libs/positions/src/lib/positions-table.spec.tsx index 7dc85c5d1..ed2aebf4c 100644 --- a/libs/positions/src/lib/positions-table.spec.tsx +++ b/libs/positions/src/lib/positions-table.spec.tsx @@ -61,7 +61,7 @@ describe('Positions', () => { 'Market', 'Size / Notional', 'Entry / Mark', - 'Margin', + 'Margin / Leverage', 'Liquidation', 'Realised PNL', 'Unrealised PNL', diff --git a/libs/positions/src/lib/positions-table.tsx b/libs/positions/src/lib/positions-table.tsx index 11d7ce1c1..b3af73bd3 100644 --- a/libs/positions/src/lib/positions-table.tsx +++ b/libs/positions/src/lib/positions-table.tsx @@ -292,7 +292,7 @@ export const PositionsTable = ({ }, }, { - headerName: t('Margin'), + headerName: t('Margin / Leverage'), colId: 'margin', type: 'rightAligned', cellClass: 'font-mono text-right', @@ -456,7 +456,7 @@ export const PositionsTable = ({ ...COL_DEFS.actions, cellRenderer: ({ data }: VegaICellRendererParams) => { return ( -
+
{data?.openVolume && data?.openVolume !== '0' && data.partyId === pubKey ? ( @@ -548,9 +548,9 @@ const WarningCell = ({ showIcon?: boolean; }) => { return ( -
+
{showIcon && ( - + )} diff --git a/libs/proposals/src/components/proposals-list/proposals-list.tsx b/libs/proposals/src/components/proposals-list/proposals-list.tsx index 38ab2b753..9cdb01aef 100644 --- a/libs/proposals/src/components/proposals-list/proposals-list.tsx +++ b/libs/proposals/src/components/proposals-list/proposals-list.tsx @@ -35,16 +35,13 @@ export const ProposalsList = ({ const { columnDefs, defaultColDef } = useColumnDefs(); return ( -
- data.id} - overlayNoRowsTemplate={t('No markets')} - components={{ SuccessorMarketRenderer, MarketNameProposalCell }} - /> -
+ data.id} + overlayNoRowsTemplate={t('No markets')} + components={{ SuccessorMarketRenderer, MarketNameProposalCell }} + /> ); }; diff --git a/libs/ui-toolkit/src/components/icon/vega-icons/svg-icons/icon-info.tsx b/libs/ui-toolkit/src/components/icon/vega-icons/svg-icons/icon-info.tsx index 84467122f..4005187f7 100644 --- a/libs/ui-toolkit/src/components/icon/vega-icons/svg-icons/icon-info.tsx +++ b/libs/ui-toolkit/src/components/icon/vega-icons/svg-icons/icon-info.tsx @@ -1,11 +1,6 @@ export const IconInfo = ({ size = 14 }: { size: number }) => { return ( - + ); diff --git a/libs/ui-toolkit/src/components/toast/toast.tsx b/libs/ui-toolkit/src/components/toast/toast.tsx index 89d7155cf..5c4b1c5c9 100644 --- a/libs/ui-toolkit/src/components/toast/toast.tsx +++ b/libs/ui-toolkit/src/components/toast/toast.tsx @@ -10,7 +10,7 @@ import { useCallback } from 'react'; import { useLayoutEffect } from 'react'; import { useRef } from 'react'; import { Intent } from '../../utils/intent'; -import { Icon } from '../icon'; +import { Icon, VegaIcon, VegaIconNames } from '../icon'; import { Loader } from '../loader'; import { t } from '@vegaprotocol/i18n'; @@ -317,18 +317,14 @@ export const Toast = ({ } )} > -
+
diff --git a/libs/ui-toolkit/src/components/toast/toasts-container.tsx b/libs/ui-toolkit/src/components/toast/toasts-container.tsx index 00fc88e4e..ae380b16d 100644 --- a/libs/ui-toolkit/src/components/toast/toasts-container.tsx +++ b/libs/ui-toolkit/src/components/toast/toasts-container.tsx @@ -3,7 +3,7 @@ import { usePrevious } from '@vegaprotocol/react-helpers'; import classNames from 'classnames'; import type { Ref } from 'react'; import { useLayoutEffect, useRef } from 'react'; -import { Button } from '../button'; +import { TradingButton } from '../trading-button'; import { Toast } from './toast'; import type { Toasts } from './use-toasts'; import { ToastPosition, useToasts, useToastsConfiguration } from './use-toasts'; @@ -87,26 +87,27 @@ export const ToastsContainer = ({ ); })} - + { + closeAll(); + }} + > + {t('Dismiss all')} + +
); diff --git a/libs/ui-toolkit/src/components/trading-dropdown/trading-dropdown.tsx b/libs/ui-toolkit/src/components/trading-dropdown/trading-dropdown.tsx index 7d3db2ad3..fba456688 100644 --- a/libs/ui-toolkit/src/components/trading-dropdown/trading-dropdown.tsx +++ b/libs/ui-toolkit/src/components/trading-dropdown/trading-dropdown.tsx @@ -146,7 +146,7 @@ export const TradingDropdownItemIndicator = forwardRef< diff --git a/libs/ui-toolkit/src/components/trading-select/select.tsx b/libs/ui-toolkit/src/components/trading-select/select.tsx index a8869a661..5be5c0df3 100644 --- a/libs/ui-toolkit/src/components/trading-select/select.tsx +++ b/libs/ui-toolkit/src/components/trading-select/select.tsx @@ -2,7 +2,7 @@ import type { Ref, SelectHTMLAttributes } from 'react'; import { useRef } from 'react'; import { forwardRef } from 'react'; import classNames from 'classnames'; -import { Icon } from '..'; +import { Icon, VegaIcon, VegaIconNames } from '..'; import { defaultSelectElement } from '../../utils/shared'; import * as SelectPrimitive from '@radix-ui/react-select'; @@ -16,7 +16,7 @@ export interface TradingSelectProps export const TradingSelect = forwardRef( ({ className, hasError, ...props }, ref) => ( -
+