diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/genpass/components/input.cljc | 5 | ||||
-rw-r--r-- | src/genpass/core.cljs | 17 |
2 files changed, 19 insertions, 3 deletions
diff --git a/src/genpass/components/input.cljc b/src/genpass/components/input.cljc index a5ae437..a4b8499 100644 --- a/src/genpass/components/input.cljc +++ b/src/genpass/components/input.cljc @@ -1,5 +1,6 @@ (ns genpass.components.input) + (defn input-primary ([text] (input-primary text #())) @@ -7,4 +8,6 @@ [:input.input.is-primary {:type "text" :value text - :on-click fn}]))
\ No newline at end of file + :on-click fn}])) + + diff --git a/src/genpass/core.cljs b/src/genpass/core.cljs index 5e17143..f6e1b68 100644 --- a/src/genpass/core.cljs +++ b/src/genpass/core.cljs @@ -8,14 +8,27 @@ (def size (r/atom 12)) (def password (r/atom (genpwd @size))) +(defn magic-selection-trick-took-from-so [e] + (let [this (.-target e)] + (if (and (.getSelection js/window) (.createRange js/document)) + (let [selection (.getSelection js/window) + range (.createRange js/document)] + (.selectNodeContents range this) + (.-romoveAllRange js/document) + (.addRange selection range)) + (if (and (.-selection js/document) (-> js/document .-body .createTextRange)) + (let [range (-> js/document .-body .creatTextRange)] + (.moveToElementText range) + (.select range this)))))) + (defn update-pwd [arg] (reset! size arg) (reset! password (genpwd @size))) (defn main-section [] [:div - [:div.field - (input-primary @password #(-> % .-target .select))] + [:div.field.has-text-centered + [:span.title.is-2 {:on-click magic-selection-trick-took-from-so} @password]] [:div.field.is-grouped.is-grouped-centered [:div.control (button-primary "Generate" #(update-pwd @size))]]]) |