368-736

document.documentElement.style.setProperty("--primary-color",d.cores?.primary||"#111"); document.documentElement.style.setProperty("--bg-card",d.cores?.card||"#fff"); document.documentElement.style.setProperty("--bg-body",d.cores?.body||"#f2f2f2"); document.documentElement.style.setProperty("--text-color",d.cores?.text||"#000"); /* ===== SINCRONIZA INPUTS + PREVIEWS ===== */ if(d.cores){ corPrimaria.value=d.cores.primary||""; corCard.value=d.cores.card||""; corBody.value=d.cores.body||""; corTexto.value=d.cores.text||""; atualizarPreview(corPrimaria); atualizarPreview(corCard); atualizarPreview(corBody); atualizarPreview(corTexto); } }); window.salvarNome=()=>set(ref(db,"loja/nome"),nomeLojaInput.value); window.salvarStatus=()=>set(ref(db,"loja/status"),statusSelect.value); window.salvarWhats=()=>set(ref(db,"loja/whatsapp"),whatsInput.value); window.salvarCores=()=>set(ref(db,"loja/cores"),{ primary:corPrimaria.value, card:corCard.value, body:corBody.value, text:corTexto.value }); window.lerBanner=i=>{ const r=new FileReader(); r.onload=()=>bannerImagem=r.result; r.readAsDataURL(i.files[0]); }; window.salvarBanner=()=>set(ref(db,"loja/banner"),bannerImagem); onValue(ref(db,"produtos"),s=>{ produtosLista=[]; s.forEach(i=>{ produtosLista.push({...i.val(),id:i.key}); }); renderProdutos(); }); window.renderProdutos=()=>{ produtos.innerHTML=""; produtosLista .filter(p=>p.titulo.toLowerCase().includes(buscaInput.value.toLowerCase())) .forEach(p=>{ produtos.innerHTML+=`

${p.titulo}

${p.descricao}

R$ ${Number(p.preco).toFixed(2)}
${p.estoque > 0 ? `📦 Estoque: ${p.estoque}` : "❌ Esgotado"}
${modoAdmin?`
`:""}
`; }); }; window.lerImagemProduto=i=>{ const r=new FileReader(); r.onload=()=>imagemProduto=r.result; r.readAsDataURL(i.files[0]); }; window.salvarProduto=()=>{ const p={ titulo:titulo.value, descricao:descricao.value, preco:Number(preco.value)||0, estoque:Number(estoque.value)||0, imagem:imagemProduto||"" }; editando?set(ref(db,"produtos/"+editando),p):push(ref(db,"produtos"),p); cancelarEdicao(); }; window.editarProduto=id=>{ get(ref(db,"produtos/"+id)).then(s=>{ const p=s.val(); titulo.value=p.titulo; descricao.value=p.descricao; preco.value=p.preco; estoque.value=p.estoque; imagemProduto=p.imagem; editando=id; }); }; window.removerProduto=id=>{ if(confirm("Excluir produto?")) remove(ref(db,"produtos/"+id)); }; window.cancelarEdicao=()=>{ titulo.value=descricao.value=preco.value=estoque.value=""; imagemProduto=""; editando=null; }; window.addCarrinho = id => { const produto = produtosLista.find(p => p.id === id); if(!produto) return; const itemCarrinho = carrinho.find(i => i.id === id); const qtdNoCarrinho = itemCarrinho ? itemCarrinho.qtd : 0; // 🚫 trava se ultrapassar estoque if(qtdNoCarrinho >= produto.estoque){ alert("❌ Quantidade indisponível em estoque"); return; } if(itemCarrinho){ itemCarrinho.qtd++; }else{ carrinho.push({...produto, qtd:1}); } renderCarrinho(); }; function renderCarrinho(){ itens.innerHTML = ""; let total = 0; carrinho.forEach(p => { total += p.preco * p.qtd; const div = document.createElement("div"); div.className = "item"; div.textContent = `${p.titulo} x${p.qtd}`; itens.appendChild(div); }); totalDiv.innerText = `Total: R$ ${(total + frete).toFixed(2)}`; } window.calcularFrete=()=>{ const cepLimpo = cep.value.replace(/D/g, ""); frete = cepLimpo.length === 8 ? 18 : 25; freteInfo.innerText = `Frete: R$ ${frete.toFixed(2)}`; renderCarrinho(); }; window.toggleCarrinho=()=>carrinhoDiv.classList.toggle("aberto");
Carregando...

Postagens mais visitadas deste blog

Tentativa

Atualização