16 خطوط
1.2 KiB
JavaScript
16 خطوط
1.2 KiB
JavaScript
import { mountShare } from './share.js?v=1';
|
|
const form=document.querySelector('#compare-upload'),result=document.querySelector('#result');
|
|
form.addEventListener('submit',async e=>{
|
|
e.preventDefault();document.querySelector('#upload-share').replaceChildren();const button=form.querySelector('button');button.disabled=true;result.textContent='Uploading both schematics…';
|
|
const headers={},key=document.querySelector('#key').value;
|
|
if(key)headers['X-API-Key']=key;
|
|
const body=new FormData();body.append('old_file',document.querySelector('#old-file').files[0]);body.append('new_file',document.querySelector('#new-file').files[0]);
|
|
const expiry=document.querySelector('#expires-in').value;
|
|
if(expiry)body.append('expires_in',expiry);
|
|
try {
|
|
const response=await fetch('/api/v1/comparisons',{method:'POST',headers,body});const data=await response.json();
|
|
if(!response.ok)throw new Error(data.error?.message||'Comparison upload failed');
|
|
result.textContent='Queued. ';const link=document.createElement('a');link.href=data.url;link.textContent='Open comparison';result.append(link);mountShare(document.querySelector('#upload-share'),data.viewer_url||data.url);
|
|
}catch(error){result.textContent=error.message;}finally{button.disabled=false;}
|
|
});
|