mirror of https://github.com/logseq/logseq
fix: esc or click outside to exit new property
parent
11fc737290
commit
5895e06506
|
@ -156,7 +156,7 @@
|
||||||
|
|
||||||
(rum/defcs property-input < rum/reactive
|
(rum/defcs property-input < rum/reactive
|
||||||
shortcut/disable-all-shortcuts
|
shortcut/disable-all-shortcuts
|
||||||
[state entity *property-key *property-value {:keys [class-schema? page-configure?]
|
[state entity *property-key *property-value {:keys [class-schema? page-configure? *configure-show?]
|
||||||
:as opts}]
|
:as opts}]
|
||||||
(let [entity-properties (->> (keys (:block/properties entity))
|
(let [entity-properties (->> (keys (:block/properties entity))
|
||||||
(map #(:block/original-name (db/entity [:block/uuid %])))
|
(map #(:block/original-name (db/entity [:block/uuid %])))
|
||||||
|
@ -188,7 +188,19 @@
|
||||||
:on-chosen (fn [{:keys [value]}]
|
:on-chosen (fn [{:keys [value]}]
|
||||||
(reset! *property-key value)
|
(reset! *property-key value)
|
||||||
(add-property-from-dropdown entity value opts))
|
(add-property-from-dropdown entity value opts))
|
||||||
:input-opts {:on-blur pv/exit-edit-property}})])))
|
:input-opts {:on-blur (fn []
|
||||||
|
(when *configure-show?
|
||||||
|
(reset! *configure-show? false))
|
||||||
|
(pv/exit-edit-property))
|
||||||
|
:on-key-down
|
||||||
|
(fn [e]
|
||||||
|
(case (util/ekey e)
|
||||||
|
"Escape"
|
||||||
|
(do
|
||||||
|
(when *configure-show?
|
||||||
|
(reset! *configure-show? false))
|
||||||
|
(pv/exit-edit-property))
|
||||||
|
nil))}})])))
|
||||||
|
|
||||||
(rum/defcs new-property < rum/reactive
|
(rum/defcs new-property < rum/reactive
|
||||||
(rum/local nil ::property-key)
|
(rum/local nil ::property-key)
|
||||||
|
|
|
@ -53,10 +53,20 @@
|
||||||
(js/Date. (date/journal-title->long title))
|
(js/Date. (date/journal-title->long title))
|
||||||
value)
|
value)
|
||||||
value' (when-not (string/blank? value)
|
value' (when-not (string/blank? value)
|
||||||
(tc/to-local-date value))
|
(tc/to-local-date value))]
|
||||||
open-modal! (fn []
|
(ui/dropdown
|
||||||
(state/set-modal!
|
(fn [{:keys [toggle-fn]}]
|
||||||
#(ui/datepicker value' {:on-change (fn [_e date]
|
[:a
|
||||||
|
{:tabIndex "0"
|
||||||
|
:on-click toggle-fn
|
||||||
|
:on-key-down (fn [e]
|
||||||
|
(when (= (util/ekey e) "Enter")
|
||||||
|
toggle-fn))}
|
||||||
|
[:span.inline-flex.items-center
|
||||||
|
(ui/icon "calendar")
|
||||||
|
[:span.ml-1 (or title "Pick a date")]]])
|
||||||
|
(fn [{:keys [toggle-fn]}]
|
||||||
|
(ui/datepicker value' {:on-change (fn [_e date]
|
||||||
(let [repo (state/get-current-repo)
|
(let [repo (state/get-current-repo)
|
||||||
journal (date/js-date->journal-title date)]
|
journal (date/js-date->journal-title date)]
|
||||||
(when-not (db/entity [:block/name (util/page-name-sanity-lc journal)])
|
(when-not (db/entity [:block/name (util/page-name-sanity-lc journal)])
|
||||||
|
@ -67,16 +77,9 @@
|
||||||
(:block/name property)
|
(:block/name property)
|
||||||
(:block/uuid page)))
|
(:block/uuid page)))
|
||||||
(exit-edit-property)
|
(exit-edit-property)
|
||||||
(state/close-modal!)))})))]
|
(toggle-fn)))}))
|
||||||
[:a
|
{:modal-class (util/hiccup->class
|
||||||
{:tabIndex "0"
|
"origin-top-right.absolute.left-0.rounded-md.shadow-lg.mt-2")})))
|
||||||
:on-click open-modal!
|
|
||||||
:on-key-down (fn [e]
|
|
||||||
(when (= (util/ekey e) "Enter")
|
|
||||||
(open-modal!)))}
|
|
||||||
[:span.inline-flex.items-center
|
|
||||||
(ui/icon "calendar")
|
|
||||||
[:span.ml-1 (or title "Pick a date")]]]))
|
|
||||||
|
|
||||||
(defn- select-page
|
(defn- select-page
|
||||||
[block property opts]
|
[block property opts]
|
||||||
|
|
Loading…
Reference in New Issue