diff --git a/src/status_im/contexts/wallet/send/events.cljs b/src/status_im/contexts/wallet/send/events.cljs index 0b6f1aa901..752a02c2fd 100644 --- a/src/status_im/contexts/wallet/send/events.cljs +++ b/src/status_im/contexts/wallet/send/events.cljs @@ -619,7 +619,7 @@ (rf/reg-event-fx :wallet/clean-up-transaction-flow (fn [_] - {:fx [[:dispatch [:wallet/clean-send-data]] + {:fx [[:dispatch [:dismiss-modal :screen/wallet.transaction-confirmation]] [:dispatch [:wallet/clean-scanned-address]] [:dispatch [:wallet/clean-local-suggestions]] [:dispatch [:wallet/clean-send-address]] @@ -629,9 +629,11 @@ (rf/reg-event-fx :wallet/end-transaction-flow (fn [{:keys [db]}] (let [address (get-in db [:wallet :current-viewing-account-address])] - {:fx [[:dispatch [:dismiss-modal :screen/wallet.transaction-confirmation]] - [:dispatch [:wallet/navigate-to-account-within-stack address]] - [:dispatch [:wallet/select-account-tab :activity]]]}))) + {:fx [[:dispatch [:wallet/navigate-to-account-within-stack address]] + [:dispatch [:wallet/select-account-tab :activity]] + [:dispatch-later + [{:ms 20 + :dispatch [:wallet/clean-up-transaction-flow]}]]]}))) (rf/reg-event-fx :wallet/build-transactions-from-route diff --git a/src/status_im/contexts/wallet/send/input_amount/view.cljs b/src/status_im/contexts/wallet/send/input_amount/view.cljs index 726447ae77..2e5b2344fc 100644 --- a/src/status_im/contexts/wallet/send/input_amount/view.cljs +++ b/src/status_im/contexts/wallet/send/input_amount/view.cljs @@ -258,8 +258,6 @@ (set-input-state #(controlled-input/->crypto % conversion-rate))) (set-crypto-currency (not crypto-currency?)))] - (rn/use-unmount - #(rf/dispatch [:wallet/clean-up-transaction-flow])) (rn/use-effect (fn [] (when active-screen? diff --git a/src/utils/money.cljs b/src/utils/money.cljs index 70b2c0e930..033ff7d370 100644 --- a/src/utils/money.cljs +++ b/src/utils/money.cljs @@ -285,10 +285,14 @@ [bn1 bn2] (.round (.mul ^js bn1 bn2) 0)) -(defn div +(defn- div* [bn1 bn2] (.dividedBy ^js bn1 bn2)) +(def div + "Divides with defaults, this version is able to receive `nil` and takes them as 0." + (fnil div* (bignumber 0) (bignumber 1))) + (defn div-and-round [bn1 bn2] (.round (.dividedBy ^js bn1 bn2) 0))