refactor(astrolabe): extract PDF viewer to dedicated component
Replace fragile 20-iteration retry loop with proper Vue lifecycle management. Changes: - Create PDFViewer.vue component (~200 lines) with: - Proper mounted/beforeUnmount lifecycle hooks - Loading/error/content states - Page navigation controls - PDF document cleanup - User-friendly error messages - Simplify App.vue by removing ~120 lines: - Remove loadPdf() and renderPdfPage() methods - Remove manual DOM polling with $nextTick() loops - Replace PDF template with <PDFViewer> component - Add pdfjs-dist@4.0.379 dependency Result: Canvas found on first attempt instead of requiring 20 retries. Follows patterns from Nextcloud's production files_pdfviewer app and 2025 Vue.js + PDF.js best practices. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.5
parent
85db90a2df
commit
5acac804a1
Vendored
+1
@@ -23,6 +23,7 @@
|
||||
"@nextcloud/router": "^3.0.1",
|
||||
"@nextcloud/vue": "^8.29.2",
|
||||
"plotly.js-dist-min": "^2.35.3",
|
||||
"pdfjs-dist": "^4.0.379",
|
||||
"vue": "^2.7.16",
|
||||
"vue-material-design-icons": "^5.3.1"
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user