diff --git a/packages/arb-token-bridge-ui/src/components/TransferPanel/TransferPanel.tsx b/packages/arb-token-bridge-ui/src/components/TransferPanel/TransferPanel.tsx index 8d7e09c4e7..5775f20ac3 100644 --- a/packages/arb-token-bridge-ui/src/components/TransferPanel/TransferPanel.tsx +++ b/packages/arb-token-bridge-ui/src/components/TransferPanel/TransferPanel.tsx @@ -416,6 +416,11 @@ export function TransferPanel() { return } + case 'end': { + setTransferring(false) + clearAmountInput() + return + } case 'dialog': { return confirmDialog(step.payload) } @@ -491,7 +496,7 @@ export function TransferPanel() { destinationChainProvider }) - const returnEarly = await drive(stepGeneratorForCctp, stepExecutor, { + await drive(stepGeneratorForCctp, stepExecutor, { amount, amountBigNumber, isDepositMode, @@ -505,21 +510,8 @@ export function TransferPanel() { childChain, parentChain }) - - // this is only necessary while we are migrating to the ui driver - // so we can know when to stop the execution of the rest of the function - // - // after we are done, we can change the return type of `drive` to `void` - if (returnEarly) { - return - } - - setTransferring(false) - clearAmountInput() - clearRoute() } catch (e) { - } finally { - setTransferring(false) + // todo: double-check error handling } } diff --git a/packages/arb-token-bridge-ui/src/ui-driver/UiDriver.ts b/packages/arb-token-bridge-ui/src/ui-driver/UiDriver.ts index bf05499fb2..7de9cb90f1 100644 --- a/packages/arb-token-bridge-ui/src/ui-driver/UiDriver.ts +++ b/packages/arb-token-bridge-ui/src/ui-driver/UiDriver.ts @@ -31,8 +31,9 @@ export type UiDriverContext = { } export type UiDriverStep = - | { type: 'start' } // + | { type: 'start' } | { type: 'return' } + | { type: 'end' } | { type: 'dialog'; payload: Dialog } | { type: 'scw_tooltip' } | { @@ -79,6 +80,8 @@ export type UiDriverStepResultFor = ? void : TStepType extends 'return' ? void + : TStepType extends 'end' + ? void : TStepType extends 'dialog' ? boolean : TStepType extends 'scw_tooltip' diff --git a/packages/arb-token-bridge-ui/src/ui-driver/UiDriverCctp.ts b/packages/arb-token-bridge-ui/src/ui-driver/UiDriverCctp.ts index d6bffe458c..7ffbe4f845 100644 --- a/packages/arb-token-bridge-ui/src/ui-driver/UiDriverCctp.ts +++ b/packages/arb-token-bridge-ui/src/ui-driver/UiDriverCctp.ts @@ -76,6 +76,8 @@ export const stepGeneratorForCctp: UiDriverStepGenerator = async function* ( type: 'tx_history_add', payload: createMergedTransaction(context, receipt.transactionHash) } + + yield* step({ type: 'end' }) } function createMergedTransaction(