From f3fc733352901504c11ee93b2f22b5c1a5cdc528 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cau=C3=AA=20Faleiros?= Date: Wed, 30 Sep 2026 14:25:50 -0300 Subject: [PATCH] fix: the upload-time notice leaves with the files, and says it in one line MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The notice stayed on the product page after the item went to the cart, showing the last file's size on the next order. It is now redrawn wherever the files are cleared and hidden when no product is open. The text is one line: "Envio: até 8 min (501,2 MB), conforme sua internet. Mantenha a página aberta." Co-Authored-By: Claude Opus 5.5 --- web/site-cart.js | 1 + web/site-config.js | 12 ++++++------ web/site-flow.js | 1 + web/site-modes.js | 2 ++ 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/web/site-cart.js b/web/site-cart.js index 38714ab..8a1cbb6 100644 --- a/web/site-cart.js +++ b/web/site-cart.js @@ -77,6 +77,7 @@ function pintaPedido(){ if(pedido.length || itemAtual) $('carr').classList.add('on'); if($('cartN')){ $('cartN').textContent=noCarrinho>99?'99+':noCarrinho; $('cartN').hidden=!noCarrinho; $('cartLink').setAttribute('aria-label','Carrinho, '+noCarrinho+(noCarrinho===1?' item':' itens')); } + pintaAvisoEnvio(); window.dispatchEvent(new Event('dtf-cart-changed')); } diff --git a/web/site-config.js b/web/site-config.js index a6c8ab0..2401117 100644 --- a/web/site-config.js +++ b/web/site-config.js @@ -129,16 +129,16 @@ const duracao=s=>{ const min=Math.ceil(s/60); return s<60 ? 'menos de 1 min' : min<60 ? min+' min' : Math.floor(min/60)+' h'+(min%60? ' '+min%60+' min' : ''); }; -const faixaEnvio=bytes=>'de '+duracao(bytes/ENVIO_RAPIDO)+' a '+duracao(bytes/ENVIO_LENTO); +const faixaEnvio=bytes=>bytes/ENVIO_RAPIDO<60 ? 'até '+duracao(bytes/ENVIO_LENTO) + : 'de '+duracao(bytes/ENVIO_RAPIDO)+' a '+duracao(bytes/ENVIO_LENTO); +// Só enquanto há arquivos no produto aberto: sai quando o item vai para o carrinho. function pintaAvisoEnvio(){ const el=$('avisoEnvio'); if(!el) return; - const total=(ehFolha()?folhas:artes).reduce((t,x)=>t+(x.f?.size||0),0); + const total=modo ? (ehFolha()?folhas:artes).reduce((t,x)=>t+(x.f?.size||0),0) : 0; el.hidden = total/ENVIO_LENTO < ENVIO_AVISA_S; if(el.hidden) return; - el.innerHTML='O envio '+((ehFolha()?folhas:artes).length>1?'destes arquivos':'deste arquivo')+ - ' ('+fmt(total)+') leva '+faixaEnvio(total)+', conforme a velocidade de upload da sua internet. '+ - 'Ele começa quando você coloca o item no carrinho e continua enquanto você preenche os dados. '+ - 'Mantenha a página aberta até terminar.'; + el.innerHTML='Envio: '+faixaEnvio(total)+' ('+fmt(total)+'), conforme sua internet. '+ + 'Mantenha a página aberta.'; } const larguraFilme=()=>MODOS[modo].larg; // cobrança proporcional: arredonda para cima em 10 cm · 2,75 m vira 2,80 m diff --git a/web/site-flow.js b/web/site-flow.js index 6b87f73..e6f8c89 100644 --- a/web/site-flow.js +++ b/web/site-flow.js @@ -29,6 +29,7 @@ function guardaItem(){ $('foco').classList.remove('on'); ['qual','prev'].forEach(id=>$(id).classList.remove('on')); modo=null; artes=[]; folhas=[]; metros=0; nota=0; montagemCm=0; + pintaAvisoEnvio(); pintaPedido(); return true; } diff --git a/web/site-modes.js b/web/site-modes.js index f2b0d24..329c876 100644 --- a/web/site-modes.js +++ b/web/site-modes.js @@ -11,6 +11,7 @@ function escolheProduto(m){ } function abrir(m){ modo=m; artes=[]; folhas=[]; metros=0; nota=0; reencaixado=false; + pintaAvisoEnvio(); montagemCm=0; avisoTipo(''); pintaModo(); @@ -89,6 +90,7 @@ document.querySelectorAll('#tipoEnvio .cam').forEach(b=>b.addEventListener('clic function trocaTipo(destino){ if(!destino || modo===destino) return; folhas=[]; artes=[]; recemChegada=null; metros=0; nota=0; montagemCm=0; + pintaAvisoEnvio(); modo=destino; history.replaceState(history.state,'',PAGINAS[modo]); document.title=tituloPagina(); $('lista').innerHTML=''; $('rA').style.display='none'; recusa([]);