Browse Source

enhance(ui): improve icon picker behavior and popup management

charlie 7 months ago
parent
commit
919224e713

+ 4 - 5
deps/shui/src/logseq/shui/popup/core.cljs

@@ -122,14 +122,13 @@
   ([] (when-let [id (some-> (get-popups) (last) :id)] (hide! id 0)))
   ([id] (hide! id 0 {}))
   ([id delay] (hide! id delay {}))
-  ([id delay {:keys [all?]}]
+  ([id delay {:keys [_all?]}]
    (when-let [popup (get-popup id)]
      (let [config (last popup)
            target (:target config)
-           f #(if all?
-                (reset! *popups [])
-                (do (detach-popup! id)
-                  (some-> (:on-after-hide config) (apply []))))]
+           f (fn []
+               (detach-popup! id)
+               (some-> (:on-after-hide config) (apply [])))]
        (some-> (:on-before-hide config) (apply []))
        (some-> target (d/remove-attr! "data-popup-active"))
        (if (and (number? delay) (> delay 0))

+ 2 - 0
src/main/frontend/components/property/value.cljs

@@ -92,12 +92,14 @@
             (fn []
               (when-let [^js target (some-> (.querySelector container (str "#ls-block-" (str (:block/uuid block))))
                                             (.querySelector ".block-main-container"))]
+                (state/set-editor-action! :property-icon-picker)
                 (shui/popup-show! target
                                   #(icon-component/icon-search
                                     {:on-chosen on-chosen!
                                      :icon-value icon
                                      :del-btn? (some? icon)})
                                   {:id :ls-icon-picker
+                                   :on-after-hide #(state/set-editor-action! nil)
                                    :align :start})))))))
      [editing?])