ソースを参照

fix: clear view/selected-blocks after exiting set property

Tienson Qin 11 ヶ月 前
コミット
170edfb772

+ 6 - 1
src/main/frontend/components/property/dialog.cljs

@@ -3,19 +3,24 @@
   (:require [frontend.components.property :as property-component]
             [frontend.db :as db]
             [frontend.modules.shortcut.core :as shortcut]
+            [frontend.state :as state]
             [rum.core :as rum]))
 
 (rum/defcs dialog <
   shortcut/disable-all-shortcuts
   (rum/local nil ::property-value)
   {:init (fn [state]
-           (let [k (:property-key (last (:rum/args state)))]
+           (let [opts (last (:rum/args state))
+                 k (:property-key opts)]
+             (when-let [view-selected-blocks (:selected-blocks opts)]
+               (state/set-state! :view/selected-blocks view-selected-blocks))
              (assoc state
                     ::property-key (atom k)
                     ::property (atom (when k (db/get-case-page k))))))
    :will-unmount (fn [state]
                    (when-let [close-fn (:on-dialog-close (last (:rum/args state)))]
                      (close-fn))
+                   (state/set-state! :view/selected-blocks nil)
                    state)}
   [state blocks opts]
   (when (seq blocks)

+ 1 - 3
src/main/frontend/handler/events.cljs

@@ -986,10 +986,8 @@
                              {:id :property-dialog
                               :align "start"}))))))
 
-(defmethod handle :editor/new-property [[_ {:keys [block target selected-blocks] :as opts}]]
+(defmethod handle :editor/new-property [[_ {:keys [block target] :as opts}]]
   (when-not config/publishing?
-    (when (seq selected-blocks)
-      (state/set-state! :view/selected-blocks selected-blocks))
     (p/do!
      (editor-handler/save-current-block!)
      (editor-new-property block target opts))))