Просмотр исходного кода

fix(assets): missing asset resource when file name with specific url encoded chars

charlie 3 лет назад
Родитель
Сommit
a80aa2df0f
2 измененных файлов с 4 добавлено и 2 удалено
  1. 1 1
      src/electron/electron/core.cljs
  2. 3 1
      src/main/frontend/extensions/pdf/assets.cljs

+ 1 - 1
src/electron/electron/core.cljs

@@ -61,7 +61,7 @@
    (fn [^js request callback]
      (let [url (.-url request)
            path (string/replace url "assets://" "")
-           path (js/decodeURIComponent path)]
+           path (js/decodeURI path)]
        (callback #js {:path path}))))
 
   (.registerFileProtocol

+ 3 - 1
src/main/frontend/extensions/pdf/assets.cljs

@@ -250,7 +250,9 @@
     (when-let [page (db-utils/pull (:db/id (:block/page block)))]
       (when-let [group-key (string/replace-first (:block/original-name page) #"^hls__" "")]
         (when-let [hl-page (:hl-page props)]
-          (let [asset-path (editor-handler/make-asset-url
+          (let [encoded-chars? (boolean (re-find #"%[0-9a-f]{2}" group-key))
+                group-key (if encoded-chars? (js/encodeURI group-key) group-key)
+                asset-path (editor-handler/make-asset-url
                              (str "/" gp-config/local-assets-dir "/" group-key "/" (str hl-page "_" id "_" stamp ".png")))]
             [:span.hl-area
              [:img {:src asset-path}]]))))))