const form = document.querySelector('#upload'), result = document.querySelector('#result'); form.addEventListener('submit',async e => { e.preventDefault(); const button = form.querySelector('button'); button.disabled = true; result.textContent = 'Uploading…'; const headers = {}, key = document.querySelector('#key').value; if (key) headers['X-API-Key'] = key; const data = new FormData(); data.append('file',document.querySelector('#file').files[0]); try { const response = await fetch('/api/v1/schematics/render',{ method:'POST',headers,body:data }); const body = await response.json(); if (!response.ok) throw new Error(body.error?.message || 'Upload failed'); result.textContent = 'Queued. '; const link = document.createElement('a'); link.href = body.viewer_url; link.textContent = 'Open schematic'; result.append(link); } catch (e) { result.textContent = e.message; } finally { button.disabled = false; } });