diff --git a/client/src/components/UploadModal.vue b/client/src/components/UploadModal.vue index dcb39a4..04424d1 100644 --- a/client/src/components/UploadModal.vue +++ b/client/src/components/UploadModal.vue @@ -324,9 +324,10 @@ async function uploadFile() { try { const formData = new FormData() - formData.append('pdf', selectedFile.value) + formData.append('file', selectedFile.value) // Use 'file' field name (backend expects this) formData.append('title', metadata.value.title) formData.append('documentType', metadata.value.documentType) + formData.append('organizationId', 'test-org-123') // TODO: Get from auth context formData.append('boatName', metadata.value.boatName) formData.append('boatMake', metadata.value.boatMake) formData.append('boatModel', metadata.value.boatModel) diff --git a/client/src/views/DocumentView.vue b/client/src/views/DocumentView.vue index cb5e3f4..6bf3777 100644 --- a/client/src/views/DocumentView.vue +++ b/client/src/views/DocumentView.vue @@ -93,8 +93,12 @@ import { ref, onMounted, watch } from 'vue' import { useRoute } from 'vue-router' import * as pdfjsLib from 'pdfjs-dist' -// Configure PDF.js worker -pdfjsLib.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjsLib.version}/pdf.worker.min.js` +// Configure PDF.js worker - use local worker file instead of CDN +// This works with Vite's bundler and avoids CORS/CDN issues +pdfjsLib.GlobalWorkerOptions.workerSrc = new URL( + 'pdfjs-dist/build/pdf.worker.min.mjs', + import.meta.url +).href const route = useRoute() @@ -108,6 +112,7 @@ const loading = ref(true) const error = ref(null) const pdfCanvas = ref(null) const pdfDoc = ref(null) +const isRendering = ref(false) async function loadDocument() { try { @@ -141,6 +146,15 @@ async function loadDocument() { async function renderPage(pageNum) { if (!pdfDoc.value || !pdfCanvas.value) return + // Prevent concurrent renders - wait for current one to finish + if (isRendering.value) { + console.log('Already rendering, skipping...') + return + } + + isRendering.value = true + error.value = null + try { const page = await pdfDoc.value.getPage(pageNum) const viewport = page.getViewport({ scale: 1.5 }) @@ -159,7 +173,9 @@ async function renderPage(pageNum) { await page.render(renderContext).promise } catch (err) { console.error('Error rendering page:', err) - error.value = 'Failed to render PDF page' + error.value = `Failed to render PDF page ${pageNum}: ${err.message}` + } finally { + isRendering.value = false } } diff --git a/client/src/views/HomeView.vue b/client/src/views/HomeView.vue index eab3b2f..f03c4d6 100644 --- a/client/src/views/HomeView.vue +++ b/client/src/views/HomeView.vue @@ -1,7 +1,7 @@