import { t } from '@vegaprotocol/i18n'; import { useDataProvider } from '@vegaprotocol/react-helpers'; import { AsyncRenderer } from '@vegaprotocol/ui-toolkit'; import type { AgGridReact } from 'ag-grid-react'; import { useRef, useMemo, memo } from 'react'; import type { AccountFields } from './accounts-data-provider'; import { aggregatedAccountsDataProvider } from './accounts-data-provider'; import type { PinnedAsset } from './accounts-table'; import { AccountTable } from './accounts-table'; interface AccountManagerProps { partyId: string; onClickAsset: (assetId: string) => void; onClickWithdraw?: (assetId?: string) => void; onClickDeposit?: (assetId?: string) => void; isReadOnly: boolean; pinnedAsset?: PinnedAsset; } export const AccountManager = ({ onClickAsset, onClickWithdraw, onClickDeposit, partyId, isReadOnly, pinnedAsset, }: AccountManagerProps) => { const gridRef = useRef(null); const variables = useMemo(() => ({ partyId }), [partyId]); const { data, loading, error, reload } = useDataProvider< AccountFields[], never >({ dataProvider: aggregatedAccountsDataProvider, variables, }); return (
null} pinnedAsset={pinnedAsset} />
!(data && data.length)} error={error} loading={loading} noDataMessage={pinnedAsset ? ' ' : t('No accounts')} reload={reload} />
); }; export default memo(AccountManager);