app.js
let precoTotal;
apagarResultado();
function calcularCusto()
{
let sectionNode = adicionarClasse('carrinho__produtos__produto', document.createElement('section'));
let listaSpanNode = [adicionarClasse('texto-azul', document.createElement('span')), adicionarClasse('texto-azul', document.createElement('span'))];
let listaTextNode = [document.getElementById('distancia').value, document.getElementById('eficiencia').value, document.getElementById('preco-gasolina').value];
if (validarEntrada(listaTextNode))
{
return;
}
precoTotal = calcularCustoViagem(document.getElementById('distancia').value, document.getElementById('eficiencia').value, document.getElementById('preco-gasolina').value);
console.log('Distância: ', listaTextNode[0], '\nEficiencia: ', listaTextNode[1], '\nPreço da Gasolina: ', listaTextNode[2], '\nCusto da Viagem: ', precoTotal);
adicionarElemento(sectionNode, adicionarElemento(listaSpanNode[0], listaTextNode[0] + ' / '));
adicionarElemento(sectionNode, listaTextNode[1]);
adicionarElemento(sectionNode, adicionarElemento(listaSpanNode[1], ' * ' + listaTextNode[2]));
adicionarElemento(document.getElementById('lista-produtos'), sectionNode);
document.getElementById('valor-total').textContent = 'R$' + precoTotal;
document.getElementById('distancia').value = document.getElementById('eficiencia').value = document.getElementById('preco-gasolina').value = '';
mudarEstadoBotoes('calcular', 'apagar');
}
function apagarResultado()
{
removerFilhos();
document.getElementById('valor-total').textContent = 'R$' + (precoTotal = 0);
document.getElementById('distancia').value = document.getElementById('eficiencia').value = document.getElementById('preco-gasolina').value = '';
mudarEstadoBotoes('apagar', 'calcular');
}
function validarEntrada(listaTextNode)
{
return listaTextNode[0] < 1 || listaTextNode[0] == '' || 'undefined' === typeof listaTextNode[0] || listaTextNode[1] == '' || 'undefined' === typeof listaTextNode[1] || listaTextNode[2] < 1 || listaTextNode[2] == '' || 'undefined' === typeof listaTextNode[2];
}
function mudarEstadoBotoes(idBotao1, idBotao2)
{
document.getElementById(idBotao1).style.visibility = 'hidden';
document.getElementById(idBotao2).style.visibility = 'visible';
}
function separarDados(texto, separador)
{
return texto.split(separador);
}
function adicionarClasse(classe, elemento)
{
elemento.classList.add(classe);
return elemento;
}
function adicionarElemento(elementoPai, elementoFilho)
{
elementoPai.append(elementoFilho);
return elementoPai;
}
function calcularCustoViagem(distancia, eficiencia, precoGasolina)
{
return distancia / eficiencia * precoGasolina;
}
function removerFilhos()
{
for (const filho of document.querySelectorAll('.carrinho__produtos__produto'))
{
document.getElementById('lista-produtos').removeChild(filho);
}
}