Browse Source

fix(electron): invalid copy file for the file based graph

charlie 9 months ago
parent
commit
f3c42fa972
1 changed files with 12 additions and 10 deletions
  1. 12 10
      src/main/frontend/handler/editor.cljs

+ 12 - 10
src/main/frontend/handler/editor.cljs

@@ -1435,16 +1435,18 @@
                            (string/replace #"^[.\/\\]*assets[\/\\]+" ""))
               dir (or (:dir matched-alias) repo-dir)]
         (if (util/electron?)
-          (let [from (not-empty (.-path file))]
-            (js/console.debug "Debug: Copy Asset #" dir file-rpath from)
-            (-> (js/window.apis.copyFileToAssets dir file-rpath from)
-                (p/then
-                 (fn [dest]
-                   [file-rpath
-                    (if (string? dest) (js/File. #js[] dest) file)
-                    (path/path-join dir file-rpath)
-                    matched-alias]))
-                (p/catch #(js/console.error "Debug: Copy Asset Error#" %))))
+          (do (js/console.debug "Debug: Copy Asset #" dir file-rpath)
+            (-> (if-let [from (not-empty (.-path file))]
+                  (js/window.apis.copyFileToAssets dir file-rpath from)
+                  (p/let [content (.arrayBuffer file)]
+                    (fs/write-file! repo repo-dir file-rpath content {:skip-compare? true})))
+              (p/then
+                (fn [dest]
+                  [file-rpath
+                   (if (string? dest) (js/File. #js[] dest) file)
+                   (path/path-join dir file-rpath)
+                   matched-alias]))
+              (p/catch #(js/console.error "Debug: Copy Asset Error#" %))))
 
           (->
            (p/do! (js/console.debug "Debug: Writing Asset #" dir file-rpath)