svelte-pdf-view 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/PdfRenderer.svelte +19 -5
- package/package.json +1 -1
package/dist/PdfRenderer.svelte
CHANGED
|
@@ -69,6 +69,17 @@
|
|
|
69
69
|
viewerState.loading = true;
|
|
70
70
|
viewerState.error = null;
|
|
71
71
|
|
|
72
|
+
// Cleanup previous viewer
|
|
73
|
+
if (viewer) {
|
|
74
|
+
viewer.destroy();
|
|
75
|
+
viewer = null;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Clear any orphaned elements in scroll container
|
|
79
|
+
scrollContainerEl.innerHTML = '';
|
|
80
|
+
|
|
81
|
+
let newViewer: import('./pdf-viewer/PDFViewerCore.js').PDFViewerCore | null = null;
|
|
82
|
+
|
|
72
83
|
try {
|
|
73
84
|
const pdfjs = await getPdfJs();
|
|
74
85
|
if (!pdfjs) return;
|
|
@@ -77,13 +88,9 @@
|
|
|
77
88
|
const { FindController } = await import('./pdf-viewer/FindController.js');
|
|
78
89
|
const { EventBus } = await import('./pdf-viewer/EventBus.js');
|
|
79
90
|
|
|
80
|
-
if (viewer) {
|
|
81
|
-
viewer.destroy();
|
|
82
|
-
}
|
|
83
|
-
|
|
84
91
|
const eventBus = new EventBus();
|
|
85
92
|
|
|
86
|
-
|
|
93
|
+
newViewer = new PDFViewerCore({
|
|
87
94
|
container: scrollContainerEl,
|
|
88
95
|
eventBus,
|
|
89
96
|
initialScale: viewerState.scale,
|
|
@@ -150,6 +157,13 @@
|
|
|
150
157
|
viewer = newViewer;
|
|
151
158
|
viewerState.loading = false;
|
|
152
159
|
} catch (e) {
|
|
160
|
+
// Clean up the viewer that was created before the error
|
|
161
|
+
if (newViewer) {
|
|
162
|
+
newViewer.destroy();
|
|
163
|
+
newViewer = null;
|
|
164
|
+
}
|
|
165
|
+
findController = null;
|
|
166
|
+
|
|
153
167
|
const errorMessage = e instanceof Error ? e.message : 'Failed to load PDF';
|
|
154
168
|
viewerState.error = errorMessage;
|
|
155
169
|
viewerState.loading = false;
|