From 4612bf19f53d3e7bb587dca419c2b70bbef93b29 Mon Sep 17 00:00:00 2001 From: Artur Siaznik Date: Wed, 3 May 2023 10:41:52 +0200 Subject: [PATCH] feat(trading): asset balances inside asset selector (deposit, withdraw) --- libs/assets/src/lib/asset-option.tsx | 49 +++++++++++++-- libs/assets/src/lib/index.ts | 3 +- libs/assets/src/lib/use-balances-store.ts | 69 ++++++++++++++++++++++ libs/deposits/src/lib/asset-balance.tsx | 42 +++++++++++++ libs/deposits/src/lib/deposit-form.tsx | 13 +++- libs/deposits/src/lib/index.ts | 5 +- libs/deposits/src/lib/use-submit-faucet.ts | 4 +- libs/utils/src/lib/is-asset-erc20.ts | 2 +- libs/withdraws/src/lib/asset-balance.tsx | 30 ++++++++++ libs/withdraws/src/lib/withdraw-form.tsx | 7 ++- 10 files changed, 211 insertions(+), 13 deletions(-) create mode 100644 libs/assets/src/lib/use-balances-store.ts create mode 100644 libs/deposits/src/lib/asset-balance.tsx create mode 100644 libs/withdraws/src/lib/asset-balance.tsx diff --git a/libs/assets/src/lib/asset-option.tsx b/libs/assets/src/lib/asset-option.tsx index 0df06a490..c993b938a 100644 --- a/libs/assets/src/lib/asset-option.tsx +++ b/libs/assets/src/lib/asset-option.tsx @@ -1,13 +1,54 @@ import { Option } from '@vegaprotocol/ui-toolkit'; import type { AssetFieldsFragment } from './__generated__/Asset'; +import classNames from 'classnames'; +import { t } from '@vegaprotocol/i18n'; +import type { ReactNode } from 'react'; -export const AssetOption = ({ asset }: { asset: AssetFieldsFragment }) => { +type AssetOptionProps = { + asset: AssetFieldsFragment; + balance?: ReactNode; +}; + +export const FetchingBalance = () => ( +
{t('Fetching balance…')}
+); + +export const Balance = ({ + balance, + symbol, +}: { + balance?: string; + symbol: string; +}) => + balance ? ( +
+ {balance} {symbol} +
+ ) : ( +
{t('Fetching balance…')}
+ ); + +export const AssetOption = ({ asset, balance }: AssetOptionProps) => { return (