Revert "Revert "Revert "[FIX #187] Fix address dropdown in My Payment Details"""
This commit is contained in:
parent
8dd2a4f2ef
commit
caca11a37b
|
@ -12,17 +12,16 @@
|
||||||
:on-change #(reset! val-ratom (-> % .-target .-value))})]))
|
:on-change #(reset! val-ratom (-> % .-target .-value))})]))
|
||||||
|
|
||||||
(defn dropdown [props title val-ratom items]
|
(defn dropdown [props title val-ratom items]
|
||||||
"If val-ratom is set, preselect it in the dropdown.
|
|
||||||
Otherwise, prepend title as a disabled option."
|
|
||||||
(fn []
|
(fn []
|
||||||
|
(if (= 1 (count items))
|
||||||
|
(reset! val-ratom (first items)))
|
||||||
[:select.ui.basic.selection.dropdown
|
[:select.ui.basic.selection.dropdown
|
||||||
(merge props {:on-change
|
(merge props {:on-change
|
||||||
#(reset! val-ratom (-> % .-target .-value))
|
#(reset! val-ratom (-> % .-target .-value))})
|
||||||
:default-value (or @val-ratom title)})
|
(doall (for [item items]
|
||||||
(for [item items]
|
^{:key item} [:option
|
||||||
^{:key item} [:option {:value item
|
{:value item}
|
||||||
:disabled (= item title)}
|
item]))]))
|
||||||
item])]))
|
|
||||||
|
|
||||||
(defn moment-timestamp [time]
|
(defn moment-timestamp [time]
|
||||||
(let [now (.now js/Date.)
|
(let [now (.now js/Date.)
|
||||||
|
|
|
@ -327,7 +327,7 @@
|
||||||
:http {:method POST
|
:http {:method POST
|
||||||
:url "/api/user/address"
|
:url "/api/user/address"
|
||||||
:on-success #(do
|
:on-success #(do
|
||||||
(dispatch [:assoc-in [:user :address] address])
|
(dispatch [:assoc-in [:user [:address] address]])
|
||||||
(dispatch [:set-flash-message
|
(dispatch [:set-flash-message
|
||||||
:success
|
:success
|
||||||
"Address saved"]))
|
"Address saved"]))
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
[commiteth.common :refer [input dropdown]]
|
[commiteth.common :refer [input dropdown]]
|
||||||
[reagent.core :as r]
|
[reagent.core :as r]
|
||||||
[reagent.crypt :as crypt]
|
[reagent.crypt :as crypt]
|
||||||
[clojure.string :as str]
|
|
||||||
[cljs-web3.eth :as web3-eth]))
|
[cljs-web3.eth :as web3-eth]))
|
||||||
|
|
||||||
|
|
||||||
|
@ -23,25 +22,13 @@
|
||||||
[:p "Insert your Ethereum address in hex format."]
|
[:p "Insert your Ethereum address in hex format."]
|
||||||
[:div.field
|
[:div.field
|
||||||
(if-not (empty? web3-accounts)
|
(if-not (empty? web3-accounts)
|
||||||
; Add value of address if it's missing from items list.
|
[dropdown {:class "address-input"} "Select address"
|
||||||
; If address is empty, add title
|
address
|
||||||
(let [accounts (map str/lower-case web3-accounts)
|
(vec
|
||||||
addr @address
|
(for [acc web3-accounts]
|
||||||
title "Select address"
|
acc))]
|
||||||
addr-not-in-web3? (and addr (as-> web3-accounts acc
|
|
||||||
(map str/lower-case acc)
|
|
||||||
(set acc)
|
|
||||||
(contains? acc addr)
|
|
||||||
(not acc)))
|
|
||||||
items (cond->> web3-accounts
|
|
||||||
addr-not-in-web3? (into [addr])
|
|
||||||
(not addr) (into [title]))]
|
|
||||||
[dropdown {:class "address-input"}
|
|
||||||
title
|
|
||||||
address
|
|
||||||
items])
|
|
||||||
[:div.ui.input.address-input
|
[:div.ui.input.address-input
|
||||||
[input address {:placeholder "0x0000000000000000000000000000000000000000"
|
[input address {:placeholder "0x0000000000000000000000000000000000000000"
|
||||||
:auto-complete "off"
|
:auto-complete "off"
|
||||||
:auto-correct "off"
|
:auto-correct "off"
|
||||||
:spell-check "false"
|
:spell-check "false"
|
||||||
|
|
Loading…
Reference in New Issue