Quellcode durchsuchen

fix(pdf): incorrect highlights layer for the first page

charlie vor 4 Tagen
Ursprung
Commit
54fdc5efda

+ 3 - 3
src/main/frontend/extensions/pdf/core.cljs

@@ -850,7 +850,8 @@
        (when-let [^js viewer (:viewer state)]
          (let [fn-textlayer-ready
                (fn [^js p]
-                 (set-ano-state! {:loaded-pages (conj (:loaded-pages ano-state) (int (.-pageNumber p)))}))]
+                 (set-ano-state!
+                  (fn [s] (assoc s :loaded-pages (conj (:loaded-pages s) (dec (js/parseInt (.-pageNumber p))))))))]
 
            (doto (.-eventBus viewer)
              (.on "textlayerrendered" fn-textlayer-ready))
@@ -859,8 +860,7 @@
               (doto (.-eventBus viewer)
                 (.off "textlayerrendered" fn-textlayer-ready))))))
 
-     [(:viewer state)
-      (:loaded-pages ano-state)])
+     [(:viewer state)])
 
     (let [^js viewer        (:viewer state)
           in-system-window? (some-> viewer (.-$inSystemWindow))]

+ 3 - 3
src/main/frontend/extensions/pdf/utils.cljs

@@ -32,14 +32,14 @@
 
 (defn vw-to-scaled-pos
   [^js viewer {:keys [page bounding rects]}]
-  (when-let [^js viewport (.. viewer (getPageView (dec page)) -viewport)]
+  (when-let [^js viewport (some-> viewer (.getPageView (dec page)) (.-viewport))]
     {:bounding (viewport-to-scaled bounding viewport)
      :rects    (for [rect rects] (viewport-to-scaled rect viewport))
      :page     page}))
 
 (defn scaled-to-vw-pos
   [^js viewer {:keys [page bounding rects]}]
-  (when-let [^js viewport (.. viewer (getPageView (dec page)) -viewport)]
+  (when-let [^js viewport (some-> viewer (.getPageView (dec page)) (.-viewport))]
     {:bounding (scaled-to-viewport bounding viewport)
      :rects    (for [rect rects] (scaled-to-viewport rect viewport))
      :page     page}))
@@ -51,7 +51,7 @@
 
 (defn resolve-hls-layer!
   [^js viewer page]
-  (when-let [^js text-layer (.. viewer (getPageView (dec page)) -textLayer)]
+  (when-let [^js text-layer (some-> viewer (.getPageView (dec page)) (.-textLayer))]
     (let [cnt (.-div text-layer)
           cls "extensions__pdf-hls-layer"
           doc js/document