aneford

//IMC //1. capturar os valores - ok //2. calcular o IMC -ok //3. Gerar a classificação do IMC - ok //4. Organizar as informações - ok //5. salvar os dados em uma lista (array) -> localStorage - ok //6. ler a lista com os dados(array) -> localStorage -> ok //7. renderizar o conteúdo na tela -> ok //8. botão limpar registros -> clear localStorage

function rolarParaLista(){ var listaDeUsuarios = document.getElementById('lista-de-usuarios'); listaDeUsuarios.scrollIntoView({ behavior: 'smooth'});

}

//função responsável por chamar todas as outras e exibir o conteúdo na tela function calcularImc(event) { event.preventDefault();

let dadosUsuario = pegarValores()

let imc = calcular( dadosUsuario.alturaUsuario, dadosUsuario.pesoUsuario )

let classificarIMC = classificacaoImc(imc)

let usuarioAtt = organizarDados(dadosUsuario, imc, classificarIMC)

cadastrarUsuario(usuarioAtt)

window.location.reload()

}

//Função para receber os valores dos inputs e converter o mesmo para um objeto function pegarValores() { let nome = document.getElementById('nome').value.trim(); let altura = parseFloat(document.getElementById('altura').value) let peso = parseFloat(document.getElementById('peso').value)

//variável de objeto recebendo os dados do front-end
let dadosUsuario = {
    nomeUsuario: nome,
    alturaUsuario: altura,
    pesoUsuario: peso
}

return dadosUsuario;

}

function calcular(altura, peso) { let imc = peso / (altura * altura)

return imc;

}

function classificacaoImc(imc) { if (imc < 18) { return "abaixo do peso"; } else if (imc < 25) { return "peso normal" } else if (imc < 30) { return "sobrepeso" } else if (imc < 35) { return "Obesidade 1" } else { return "obesidade 2 e 3" } }

function organizarDados(dadosUsuario, valorImc, classificacaoImc) { let dataAtual = Intl.DateTimeFormat('pt-BR', { timeStyle: 'long', dateStyle: 'short' }).format(Date.now()); let dadosUsuarioAtt = { ...dadosUsuario, imc: valorImc.toFixed(2), classificacao: classificacaoImc, dataCadastro: dataAtual }

return dadosUsuarioAtt;

}

//função responsável por armazenar o objeto dentro do local storage function cadastrarUsuario(usuario) { let listaDeUsuario = []

//validação para verificar se eu tenho algum dado dentro do local storage do navegador
if (localStorage.getItem("usuariosCadastrados")) {
    listaDeUsuario = JSON.parse(localStorage.getItem("usuariosCadastrados"))
}

listaDeUsuario.push(usuario)

localStorage.setItem("usuariosCadastrados", JSON.stringify(listaDeUsuario))

}

function carregarUsuarios() { let listaUsuarios = []

if (localStorage.getItem("usuariosCadastrados")) {
    listaUsuarios = JSON.parse(localStorage.getItem("usuariosCadastrados"))
}

if (listaUsuarios.length == 0) {
    let tabela = document.getElementById('corpo-tabela')

    tabela.innerHTML = `
        <tr class="linha-mensagem">
           <td colspan="6"> Nenhum usuário cadastrado </td> 
        </tr>
    `
} else {
    montarTabela(listaUsuarios)
}

}

window.addEventListener('DOMContentLoaded', () => carregarUsuarios());

function montarTabela(listaDeCadastrados) { let tabela = document.getElementById('corpo-tabela')

listaDeCadastrados.forEach(pessoa => {

    tabela.innerHTML += `
        <tr>
            <td> ${pessoa.nomeUsuario} </td>
            <td> ${pessoa.alturaUsuario} </td>
            <td> ${pessoa.pesoUsuario} </td>
            <td> ${pessoa.imc} </td>
            <td> ${pessoa.classificacao} </td>
            <td> ${pessoa.dataCadastro} </td>
        </tr>
    `
})

}

function deletarRegistros() { localStorage.clear("usuariosCadastrados")

window.location.reload();

}