diff --git a/src/cljs/commiteth/common.cljs b/src/cljs/commiteth/common.cljs index 4399156e..1213395e 100644 --- a/src/cljs/commiteth/common.cljs +++ b/src/cljs/commiteth/common.cljs @@ -12,17 +12,16 @@ :on-change #(reset! val-ratom (-> % .-target .-value))})])) (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 [] + (if (= 1 (count items)) + (reset! val-ratom (first items))) [:select.ui.basic.selection.dropdown (merge props {:on-change - #(reset! val-ratom (-> % .-target .-value)) - :default-value (or @val-ratom title)}) - (for [item items] - ^{:key item} [:option {:value item - :disabled (= item title)} - item])])) + #(reset! val-ratom (-> % .-target .-value))}) + (doall (for [item items] + ^{:key item} [:option + {:value item} + item]))])) (defn moment-timestamp [time] (let [now (.now js/Date.) diff --git a/src/cljs/commiteth/handlers.cljs b/src/cljs/commiteth/handlers.cljs index ed677d74..eb613748 100644 --- a/src/cljs/commiteth/handlers.cljs +++ b/src/cljs/commiteth/handlers.cljs @@ -327,7 +327,7 @@ :http {:method POST :url "/api/user/address" :on-success #(do - (dispatch [:assoc-in [:user :address] address]) + (dispatch [:assoc-in [:user [:address] address]]) (dispatch [:set-flash-message :success "Address saved"])) diff --git a/src/cljs/commiteth/update_address.cljs b/src/cljs/commiteth/update_address.cljs index 14ceaa11..6134bde7 100644 --- a/src/cljs/commiteth/update_address.cljs +++ b/src/cljs/commiteth/update_address.cljs @@ -3,7 +3,6 @@ [commiteth.common :refer [input dropdown]] [reagent.core :as r] [reagent.crypt :as crypt] - [clojure.string :as str] [cljs-web3.eth :as web3-eth])) @@ -23,25 +22,13 @@ [:p "Insert your Ethereum address in hex format."] [:div.field (if-not (empty? web3-accounts) - ; Add value of address if it's missing from items list. - ; If address is empty, add title - (let [accounts (map str/lower-case web3-accounts) - addr @address - title "Select address" - 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]) + [dropdown {:class "address-input"} "Select address" + address + (vec + (for [acc web3-accounts] + acc))] [:div.ui.input.address-input - [input address {:placeholder "0x0000000000000000000000000000000000000000" + [input address {:placeholder "0x0000000000000000000000000000000000000000" :auto-complete "off" :auto-correct "off" :spell-check "false"