]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Lazy loading
authorshamoon <4887959+shamoon@users.noreply.github.com>
Wed, 2 Jul 2025 05:02:00 +0000 (22:02 -0700)
committershamoon <4887959+shamoon@users.noreply.github.com>
Sat, 2 Aug 2025 12:22:55 +0000 (08:22 -0400)
src-ui/src/app/components/common/pdf-editor/pdf-editor.component.html
src-ui/src/app/components/common/pdf-editor/pdf-editor.component.ts

index 30dace698015896d723f25bdd42074a23cd44653..648bc1ce4110a3603953805aff56254e97e39da4 100644 (file)
           </div>
         </div>
         <div class="pdf-viewer-container w-100" [class.selected]="p.selected">
-          <pdf-viewer [src]="pdfSrc" [page]="p.page" [rotation]="p.rotate" [original-size]="false" [show-all]="false" [render-text]="false"></pdf-viewer>
+          @defer (on viewport) {
+            <pdf-viewer [class.opacity-0]="!p.loaded" [src]="pdfSrc" [page]="p.page" [rotation]="p.rotate" [original-size]="false" [show-all]="false" [render-text]="false" (page-rendered)="p.loaded = true"></pdf-viewer>
+          } @placeholder {
+            <div class="placeholder-glow w-100 h-100 z-10">
+              <span class="placeholder w-100"></span>
+            </div>
+          }
         </div>
         @if (p.splitAfter) {
           <div class="split-after rounded position-absolute top-0 end-0 bg-dark text-uppercase text-center h-100 px-1 small fw-bold">&mdash; <span i18n>Split here</span> &mdash;</div>
index 95f85a8e28ec96fdd9a45dc399c4cae464b1ea6f..3b52c4947b16fa71a6b3dcfb2c48db921bd9119d 100644 (file)
@@ -17,6 +17,7 @@ interface PageOperation {
   rotate: number
   splitAfter: boolean
   selected?: boolean
+  loaded?: boolean
 }
 
 @Component({
@@ -51,6 +52,7 @@ export class PDFEditorComponent extends ConfirmDialogComponent {
       rotate: 0,
       splitAfter: false,
       selected: false,
+      loaded: false,
     }))
   }