Преглед изворни кода

enhance: remove delay hack

Tienson Qin пре 3 година
родитељ
комит
336a703e6e
2 измењених фајлова са 11 додато и 12 уклоњено
  1. 3 12
      src/main/frontend/fs/capacitor_fs.cljs
  2. 8 0
      src/main/frontend/handler/events.cljs

+ 3 - 12
src/main/frontend/fs/capacitor_fs.cljs

@@ -17,18 +17,9 @@
     (.ensureDocuments mobile-util/ios-file-container)))
 
 (when (mobile-util/native-ios?)
-  ;; NOTE: avoid circular dependency
-  #_:clj-kondo/ignore
-  (def handle-changed! (delay frontend.fs.watcher-handler/handle-changed!))
-
-  (p/do!
-   (.addListener mobile-util/fs-watcher "watcher"
-                 (fn [^js event]
-                   (@handle-changed!
-                    (.-event event)
-                    (update (js->clj event :keywordize-keys true)
-                            :path
-                            js/decodeURI))))))
+  (.addListener mobile-util/fs-watcher "watcher"
+                (fn [event]
+                  (state/pub-event! [:file-watcher/changed event]))))
 
 (defn check-permission-android []
   (p/let [permission (.checkPermissions Filesystem)

+ 8 - 0
src/main/frontend/handler/events.cljs

@@ -14,6 +14,7 @@
             [frontend.db-schema :as db-schema]
             [frontend.extensions.srs :as srs]
             [frontend.fs.nfs :as nfs]
+            [frontend.fs.watcher-handler :as fs-watcher]
             [frontend.handler.common :as common-handler]
             [frontend.handler.editor :as editor-handler]
             [frontend.handler.notification :as notification]
@@ -303,6 +304,13 @@
          :warning
          false)))))
 
+(defmethod handle :file-watcher/changed [[_ ^js event]]
+  (fs-watcher/handle-changed!
+   (.-event event)
+   (update (js->clj event :keywordize-keys true)
+           :path
+           js/decodeURI)))
+
 (defn run!
   []
   (let [chan (state/get-events-chan)]