* feat: #847 show progress bar, margin accounts, no used/deposited * feat: #847 add collateral tables * fix: #847 add deposit asset type and fix tests * feat: #847 show deposited value, avaliable and percentage used * fix: #847 add styling fixes * fix: #847 add deposit new asset button * fix: #847 remove disabledSelect to fix withdraw and deposit dialogs * fix: #847 remove global reward from incoming - needs to be party specific * fix: #847 integration tests * fix: #847 default select deposit & withdraw * fix: #847 default select deposit & withdraw * fix: #847 pass asset id as default value * fix: #847 use only bigint no bignumber, remove NaN check * fix: #847 update deposit-form.spec.tsx * fix: revert update on account fields * feat: add storybook set up * chore: ignore apollo errors - to be reverted after API will be fixed * fix: container moved, progress bar in helpers * fix: #847 UI tweaks around accounts container * feat: #847 added useDepositAsset and useWithdrawAsset * fix: #847 fix progress bar in accounts and positions * feat: #847 add storybook * fix: #847 added tooltip and updated filtering * chore: #847 add get account data test * fix: #847 fix lint and type in account story * fix: #847 update data provider * fix: #847 fix get account data dry & lp link * fix: #847 fix breakdown table test * fix: #847 account data provider test * fix: #847 remove deposit new asset button - subscription does not display a sset data * fix: #847 add defaultValue in select otherwise default is not set up * feat: #847 update data provider update method and tables * fix: #847 fix accounts tests * fix: #847 remove unused getRows * fix: add decimals * fix: #847 fix imports * fix: update ids * Update apps/trading/pages/liquidity/[marketId].page.tsx * fix: #847 accounts update method check delta * fix: #847 use vega value formatters and cell renderers * fix: #847 fix imports * fix: #847 handle new account else block comment * fix: accounts and breakdown tables * fix(#847): account data provider improvments * fix: #847 fix formatters null check and add param * fix: #847 fix withdraw test and mock the hook * fix: #847 fix console lite grid select market test * fix: console lite build * fix: revert withdraw limits * fix: remove redundant waitFor use vega cell renderer * fix: breakdown display only use accounts * fix: breakdown display only use accounts * fix: updated accounts table * fix: move update inside try useWithdrawAsset * fix: update trading-accounts test * fix: portfolio-page.test.ts Co-authored-by: Bartłomiej Głownia <bglownia@gmail.com>
112 lines
3.2 KiB
TypeScript
112 lines
3.2 KiB
TypeScript
import { forwardRef } from 'react';
|
|
import {
|
|
addDecimalsFormatNumber,
|
|
PriceCell,
|
|
t,
|
|
} from '@vegaprotocol/react-helpers';
|
|
import type { VegaValueFormatterParams } from '@vegaprotocol/ui-toolkit';
|
|
import {
|
|
AgGridDynamic as AgGrid,
|
|
progressBarCellRendererSelector,
|
|
} from '@vegaprotocol/ui-toolkit';
|
|
import { AgGridColumn } from 'ag-grid-react';
|
|
import type { AgGridReact, AgGridReactProps } from 'ag-grid-react';
|
|
import type { AccountFields } from './accounts-data-provider';
|
|
import { AccountTypeMapping } from '@vegaprotocol/types';
|
|
import {
|
|
progressBarHeaderComponentParams,
|
|
progressBarValueFormatter,
|
|
} from './accounts-table';
|
|
|
|
interface BreakdownTableProps extends AgGridReactProps {
|
|
data: AccountFields[] | null;
|
|
}
|
|
|
|
const BreakdownTable = forwardRef<AgGridReact, BreakdownTableProps>(
|
|
({ data }, ref) => {
|
|
return (
|
|
<AgGrid
|
|
style={{ width: '100%', height: '100%' }}
|
|
overlayNoRowsTemplate={t('Collateral not used')}
|
|
rowData={data}
|
|
getRowId={({ data }: { data: AccountFields }) =>
|
|
`${data.asset.id}-${data.type}-${data.market?.id}`
|
|
}
|
|
ref={ref}
|
|
rowHeight={34}
|
|
components={{ PriceCell }}
|
|
tooltipShowDelay={500}
|
|
defaultColDef={{
|
|
flex: 1,
|
|
resizable: true,
|
|
}}
|
|
>
|
|
<AgGridColumn
|
|
headerName={t('Account type')}
|
|
field="type"
|
|
maxWidth={300}
|
|
valueFormatter={({
|
|
value,
|
|
}: VegaValueFormatterParams<AccountFields, 'type'>) =>
|
|
AccountTypeMapping[value]
|
|
}
|
|
/>
|
|
<AgGridColumn
|
|
headerName={t('Market')}
|
|
field="market.tradableInstrument.instrument.name"
|
|
valueFormatter={({
|
|
value,
|
|
}: VegaValueFormatterParams<
|
|
AccountFields,
|
|
'market.tradableInstrument.instrument.name'
|
|
>) => {
|
|
if (!value) return '-';
|
|
return value;
|
|
}}
|
|
minWidth={200}
|
|
/>
|
|
<AgGridColumn
|
|
headerName={t('Used')}
|
|
field="used"
|
|
flex={2}
|
|
maxWidth={500}
|
|
headerComponentParams={progressBarHeaderComponentParams}
|
|
cellRendererSelector={progressBarCellRendererSelector}
|
|
valueFormatter={progressBarValueFormatter}
|
|
/>
|
|
|
|
<AgGridColumn
|
|
headerName={t('Deposited')}
|
|
field="deposited"
|
|
valueFormatter={({
|
|
value,
|
|
data,
|
|
}: VegaValueFormatterParams<AccountFields, 'deposited'>) => {
|
|
if (data && data.asset) {
|
|
return addDecimalsFormatNumber(value, data.asset.decimals);
|
|
}
|
|
return '-';
|
|
}}
|
|
maxWidth={300}
|
|
/>
|
|
<AgGridColumn
|
|
headerName={t('Balance')}
|
|
field="balance"
|
|
valueFormatter={({
|
|
value,
|
|
data,
|
|
}: VegaValueFormatterParams<AccountFields, 'balance'>) => {
|
|
if (data && data.asset) {
|
|
return addDecimalsFormatNumber(value, data.asset.decimals);
|
|
}
|
|
return '-';
|
|
}}
|
|
maxWidth={300}
|
|
/>
|
|
</AgGrid>
|
|
);
|
|
}
|
|
);
|
|
|
|
export default BreakdownTable;
|