diff --git a/extension/src/popup/components/setup-wizard.ts b/extension/src/popup/components/setup-wizard.ts index 934412e..c571477 100644 --- a/extension/src/popup/components/setup-wizard.ts +++ b/extension/src/popup/components/setup-wizard.ts @@ -156,11 +156,26 @@ function attachStep1Listeners(): void { const reader = new FileReader(); reader.onload = () => { - const result = reader.result as string; - // Remove the data:image/jpeg;base64, prefix. - const base64 = result.split(',')[1] ?? result; - wizardImageBase64 = base64; - setState({ error: null }); // Re-render to show "image loaded". + try { + const result = reader.result as string; + // Remove the data:image/jpeg;base64, prefix. + const base64 = result.split(',')[1] ?? result; + wizardImageBase64 = base64; + // Update UI without a full re-render to avoid resetting file input state. + const dropEl = document.getElementById('file-drop'); + if (dropEl) { + dropEl.classList.add('has-file'); + const p = dropEl.querySelector('p'); + if (p) p.textContent = `image loaded (${(file.size / 1024).toFixed(0)} KB)`; + } + const nextBtn = document.getElementById('next-btn') as HTMLButtonElement; + if (nextBtn) nextBtn.disabled = false; + } catch (err) { + setState({ error: `Failed to read image: ${err}` }); + } + }; + reader.onerror = () => { + setState({ error: 'Failed to read image file' }); }; reader.readAsDataURL(file); });