From 8a355b1e756f6179e2fd5873cb10fb482db4c0e7 Mon Sep 17 00:00:00 2001 From: Goran Jovic Date: Thu, 10 May 2018 12:35:35 +0300 Subject: [PATCH] bug #4180 and revert #4038 - amount number formatting in wallet send Signed-off-by: Julien Eluard --- src/status_im/ui/screens/wallet/request/views.cljs | 6 ++---- src/status_im/ui/screens/wallet/send/views.cljs | 11 ++++++++--- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/status_im/ui/screens/wallet/request/views.cljs b/src/status_im/ui/screens/wallet/request/views.cljs index 6854b1f80f..1969aca4a8 100644 --- a/src/status_im/ui/screens/wallet/request/views.cljs +++ b/src/status_im/ui/screens/wallet/request/views.cljs @@ -28,8 +28,7 @@ ;; TODO(jeluard) both send and request flows should be merged (views/letsubs [{:keys [to to-name whisper-identity]} [:wallet.send/transaction] {:keys [amount amount-error]} [:wallet.request/transaction] - scroll (atom nil) - amount-text-value (atom nil)] + scroll (atom nil)] [comp/simple-screen {:avoid-keyboard? true} [comp/toolbar (i18n/label :t/new-request)] [react/view components.styles/flex @@ -46,8 +45,7 @@ :input-options {:default-value (str (money/to-fixed (money/wei->ether amount))) :max-length 21 :on-focus (fn [] (when @scroll (utils/set-timeout #(.scrollToEnd @scroll) 100))) - :on-change-text #(reset! amount-text-value %) - :on-end-editing #(re-frame/dispatch [:wallet.request/set-and-validate-amount @amount-text-value])}}]]] + :on-change-text #(re-frame/dispatch [:wallet.request/set-and-validate-amount %])}}]]] [bottom-buttons/bottom-buttons styles/bottom-buttons nil ;; Force a phantom button to ensure consistency with other transaction screens which define 2 buttons [button/button {:disabled? (not (and to amount)) diff --git a/src/status_im/ui/screens/wallet/send/views.cljs b/src/status_im/ui/screens/wallet/send/views.cljs index 9589825bda..244bc75e44 100644 --- a/src/status_im/ui/screens/wallet/send/views.cljs +++ b/src/status_im/ui/screens/wallet/send/views.cljs @@ -194,9 +194,15 @@ (when advanced? [advanced-cartouche transaction modal?])]) +(defn update-amount-fn [timeout] + (fn [amount] + (when @timeout + (utils/clear-timeout @timeout)) + (reset! timeout (utils/set-timeout #(re-frame/dispatch [:wallet.send/set-and-validate-amount amount]) 500)))) + (defn- send-transaction-panel [{:keys [modal? transaction scroll advanced? symbol]}] (let [{:keys [amount amount-error signing? to to-name sufficient-funds? in-progress? from-chat?]} transaction - amount-text-value (atom nil)] + timeout (atom nil)] [wallet.components/simple-screen {:avoid-keyboard? (not modal?) :status-bar-type (if modal? :modal-wallet :wallet)} [toolbar from-chat? (if modal? act/close-white act/back-white) @@ -221,8 +227,7 @@ :input-options {:default-value (str (money/to-fixed (money/wei->ether amount))) :max-length 21 :on-focus (fn [] (when (and scroll @scroll) (utils/set-timeout #(.scrollToEnd @scroll) 100))) - :on-change-text #(reset! amount-text-value %) - :on-end-editing #(re-frame/dispatch [:wallet.send/set-and-validate-amount @amount-text-value])}}] + :on-change-text (update-amount-fn timeout)}}] [advanced-options advanced? transaction modal?]]] (if signing? [signing-buttons