1
resposta

Projeto final do curso

<!DOCTYPE html>
<html lang="pt-br">

<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  <link href="https://fonts.googleapis.com/css2?family=Chakra+Petch&family=Inter&display=swap" rel="stylesheet">
  <link href="
https://cdn.jsdelivr.net/npm/reset-css@5.0.2/reset.min.css
" rel="stylesheet" />
  <link href="
https://cdn.jsdelivr.net/npm/normalize.css@8.0.1/normalize.min.css
" rel="stylesheet" />
  <title>Amigo Secreto</title>
  <link rel="stylesheet" href="style.css" />
</head>

<body>
  <main>
    <img class="page__image" src="./assets/imagem-presente.png" alt="Imagem de um presente">
    <div class="content">
      <div class="content__corner-rectangle"></div>
      <div class="content__main">
        <section>
          <h1 class="section__title">Amigo <span>Secreto</span></h1>
          <form class="form">
            <label class="form__label">
              Digite o nome de um amigo
            </label>
            <input id="nome-amigo" class="form__input" type="text" placeholder="Nome do amigo">
            <div class="form__buttons">
              <button onclick="adicionar()" type="button" class="button primary">Adicionar</button>
              <button onclick="sortear()" type="button" class="button secondary">Sortear</button>
              <a onclick="reiniciar()" href="#" class="form__link">Reiniciar</a>
            </div>
          </form>
        </section>
        <section class="section--results">
          <article>
            <p class="friends__title">Amigos incluídos</p>
            <div class="friends__container">
              <p id="lista-amigos"></p>
            </div>
          </article>
          <article>
            <p class="prizeDraw__title">Sorteio</p>
            <div class="prizeDraw__container">
              <p id="lista-sorteio"></p>
            </div>
          </article>
        </section>
      </div>
    </div>
  </main>
  <div class="background__detail">

    <script src="js/app.js"></script>
</body>

</html>
let amigos = [];

function adicionar() {
    let amigo = document.getElementById('nome-amigo');
    if (amigo.value == '') {
        alert('Informe o nome do(a) amigo(a)!');
        return;
    }

    if (amigos.includes(amigo.value.toUpperCase())) {
        alert('Nome já adicionado!');
        return;
    }

    let lista = document.getElementById('lista-amigos');

    amigos.push(amigo.value.toUpperCase());

    if (lista.textContent == '') {
        lista.textContent = amigo.value;
    } else {
        lista.textContent = lista.textContent + ', ' + amigo.value;
    }
    amigo.value = '';

    atualizarLista();
    atualizarSorteio();
}

function sortear() {
    if (amigos.length < 4) {
        alert('Adicione no mínimo 4 amigos!');
        return;
    }

    embaralhar(amigos);
    let sorteio = document.getElementById('lista-sorteio');

    for (let i = 0; i < amigos.length; i++) {

        if (i == amigos.length - 1) {
            sorteio.innerHTML = sorteio.innerHTML + amigos[i] + ' --> ' + amigos[0] + '<br>';
        } else {
            sorteio.innerHTML = sorteio.innerHTML + amigos[i] + ' --> ' + amigos[i + 1] + '<br>';
        }
    }
}

function excluirAmigo(index) {
    amigos.splice(index, 1);
    atualizarLista();
    atualizarSorteio();
}

function embaralhar(lista) {

    for (let indice = lista.length; indice; indice--) {

        const indiceAleatorio = Math.floor(Math.random() * indice);

        // atribuição via destructuring
        [lista[indice - 1], lista[indiceAleatorio]] =
            [lista[indiceAleatorio], lista[indice - 1]];
    }
}

function atualizarSorteio() {
    let sorteio = document.getElementById('lista-sorteio');
    sorteio.innerHTML = '';
}

function atualizarLista() {
    let lista = document.getElementById('lista-amigos');
    lista.innerHTML = '';

    for (let i = 0; i < amigos.length; i++) {
        let paragrafo = document.createElement('p');
        paragrafo.textContent = amigos[i];

        paragrafo.addEventListener('click', function () {
            excluirAmigo(i);
        });

        lista.appendChild(paragrafo);
    }
}

function reiniciar() {
    amigos = [];
    document.getElementById('nome-amigo').value = ''; // Limpa o campo de entrada
    document.getElementById('lista-amigos').textContent = ''; // Limpa a lista de amigos
    document.getElementById('lista-sorteio').innerHTML = ''; // Limpa o resultado do sorteio
}
1 resposta

Oi, Harlen! Tudo certo por aí?

Parabéns pelo desenvolvimento do projeto! Obrigada por compartilhá-lo com o fórum do curso, tenho certeza que ajudará muitos colegas que possam estar sentindo dúvidas! Caso tenha ficado alguma dúvida em relação a algum conteúdo do curso ou atividade, fique a vontade para expor, estou à disposição e ficarei super feliz em poder ajudar!

Um forte abraço e bons estudos!