diff --git a/libs/accounts/src/lib/accounts-actions-dropdown.tsx b/libs/accounts/src/lib/accounts-actions-dropdown.tsx index 93f34aeff..bf8ce77f8 100644 --- a/libs/accounts/src/lib/accounts-actions-dropdown.tsx +++ b/libs/accounts/src/lib/accounts-actions-dropdown.tsx @@ -60,7 +60,7 @@ export const AccountsActionsDropdown = ({ openTransferDialog(true)} + onClick={() => openTransferDialog(true, assetId)} > {t('Transfer')} diff --git a/libs/accounts/src/lib/transfer-container.tsx b/libs/accounts/src/lib/transfer-container.tsx index e95d3e6a4..338ffec79 100644 --- a/libs/accounts/src/lib/transfer-container.tsx +++ b/libs/accounts/src/lib/transfer-container.tsx @@ -14,7 +14,7 @@ import { TransferForm } from './transfer-form'; import { useTransferDialog } from './transfer-dialog'; import { Lozenge } from '@vegaprotocol/ui-toolkit'; -export const TransferContainer = () => { +export const TransferContainer = ({ assetId }: { assetId?: string }) => { const { pubKey, pubKeys } = useVegaWallet(); const open = useTransferDialog((store) => store.open); const { param } = useNetworkParam(NetworkParams.transfer_fee_factor); @@ -59,6 +59,7 @@ export const TransferContainer = () => { pubKey={pubKey} pubKeys={pubKeys ? pubKeys?.map((pk) => pk.publicKey) : null} assets={assets} + assetId={assetId} feeFactor={param} submitTransfer={transfer} /> diff --git a/libs/accounts/src/lib/transfer-dialog.tsx b/libs/accounts/src/lib/transfer-dialog.tsx index 2861113f1..47fd40375 100644 --- a/libs/accounts/src/lib/transfer-dialog.tsx +++ b/libs/accounts/src/lib/transfer-dialog.tsx @@ -5,24 +5,26 @@ import { TransferContainer } from './transfer-container'; interface State { isOpen: boolean; + assetId: string | undefined; } interface Actions { - open: (open?: boolean) => void; + open: (open?: boolean, assetId?: string) => void; } export const useTransferDialog = create()((set) => ({ isOpen: false, - open: (open = true) => { - set(() => ({ isOpen: open })); + assetId: undefined, + open: (open = true, assetId) => { + set(() => ({ isOpen: open, assetId })); }, })); export const TransferDialog = () => { - const { isOpen, open } = useTransferDialog(); + const { isOpen, open, assetId } = useTransferDialog(); return ( - + ); }; diff --git a/libs/accounts/src/lib/transfer-form.tsx b/libs/accounts/src/lib/transfer-form.tsx index 7a56c9342..cf10a4d1e 100644 --- a/libs/accounts/src/lib/transfer-form.tsx +++ b/libs/accounts/src/lib/transfer-form.tsx @@ -41,6 +41,7 @@ interface TransferFormProps { decimals: number; balance: string; }>; + assetId?: string; feeFactor: string | null; submitTransfer: (transfer: Transfer) => void; } @@ -49,6 +50,7 @@ export const TransferForm = ({ pubKey, pubKeys, assets, + assetId: initialAssetId, feeFactor, submitTransfer, }: TransferFormProps) => { @@ -59,7 +61,11 @@ export const TransferForm = ({ handleSubmit, setValue, formState: { errors }, - } = useForm(); + } = useForm({ + defaultValues: { + asset: initialAssetId, + }, + }); const amount = watch('amount'); const assetId = watch('asset');