diff --git a/portal/setup-wizard.html b/portal/setup-wizard.html index d5b5e71..a159d26 100644 --- a/portal/setup-wizard.html +++ b/portal/setup-wizard.html @@ -1624,6 +1624,14 @@ document.getElementById('conversation').innerHTML = ''; + // Progress container: completed results stay, spinner updates in place + const progressDiv = document.createElement('div'); + progressDiv.id = 'extractionProgress'; + const spinnerDiv = document.createElement('div'); + spinnerDiv.id = 'extractionSpinner'; + document.getElementById('conversation').appendChild(progressDiv); + document.getElementById('conversation').appendChild(spinnerDiv); + // Combined results — start with business info from discovery phase const allItems = []; const allCategories = []; @@ -1632,12 +1640,14 @@ let totalProcessed = 0; for (const page of pages) { - addMessage('ai', ` -
Extracted ${page.name}${scheduleNote}: ${data.items?.length || 0} items in ${data.categories?.length || 0} categories
- `); + const line = document.createElement('div'); + line.className = 'message ai-message'; + line.innerHTML = `✓ Extracted ${page.name}${scheduleNote}: ${data.items?.length || 0} items in ${data.categories?.length || 0} categories
`; + progressDiv.appendChild(line); } else { - document.getElementById('conversation').innerHTML = ''; - addMessage('ai', `Could not extract items from ${page.name} page.
`); + const line = document.createElement('div'); + line.className = 'message ai-message'; + line.innerHTML = `✗ Could not extract items from ${page.name} page.
`; + progressDiv.appendChild(line); totalProcessed++; } } catch (err) { console.error(`Error extracting ${page.name}:`, err); - document.getElementById('conversation').innerHTML = ''; - addMessage('ai', `Error extracting ${page.name}: ${err.message}
`); + const line = document.createElement('div'); + line.className = 'message ai-message'; + line.innerHTML = `✗ Error extracting ${page.name}: ${err.message}
`; + progressDiv.appendChild(line); totalProcessed++; } } + spinnerDiv.remove(); // Compute max business hours from all menu schedules if (allMenus.some(m => m.schedule) && !businessInfo.hours) {