diff --git a/web/src/components/DocUploadZone.vue b/web/src/components/DocUploadZone.vue index 6b41c95..b0000d3 100644 --- a/web/src/components/DocUploadZone.vue +++ b/web/src/components/DocUploadZone.vue @@ -2,7 +2,7 @@

Upload documents

@@ -56,8 +56,13 @@ async function uploadFile(file: File) { fileStatuses.value[idx] = { name: file.name, status: 'done' } emit('uploaded') } else { - const msg = await r.text() - fileStatuses.value[idx] = { name: file.name, status: 'error', error: msg || `Error ${r.status}` } + let errorMsg = `Error ${r.status}` + try { + const body = await r.text() + const parsed = JSON.parse(body) + errorMsg = parsed.detail ?? parsed.message ?? errorMsg + } catch { /* leave default */ } + fileStatuses.value[idx] = { name: file.name, status: 'error', error: errorMsg } } } catch { fileStatuses.value[idx] = { name: file.name, status: 'error', error: 'Upload failed' } @@ -71,6 +76,12 @@ function onFileInput(e: Event) { input.value = '' } +function onDragLeave(e: DragEvent) { + if (e.currentTarget instanceof Node && e.relatedTarget instanceof Node && + (e.currentTarget as Node).contains(e.relatedTarget as Node)) return + isDragging.value = false +} + function onDrop(e: DragEvent) { isDragging.value = false if (!e.dataTransfer?.files) return diff --git a/web/src/components/WizardOverlay.vue b/web/src/components/WizardOverlay.vue index 5952ea2..bdf0cb0 100644 --- a/web/src/components/WizardOverlay.vue +++ b/web/src/components/WizardOverlay.vue @@ -151,6 +151,8 @@ async function loadSchema() { if (saved) { try { session.value = JSON.parse(saved) } catch {} } + // Pre-populate answer for the current step (handles sessionStorage restore) + answer.value = session.value.answers[currentStep.value?.id ?? ''] ?? '' } async function goNext(skip = false) {