1
resposta

[Projeto] Fiz dessa forma, ainda não vi ninguém usar (!)

// Recebe o ID do jogo como parâmetro
function alterarStatus(id) {
    // Busca o botão do jogo específico usando o ID
    const botao = document.querySelector(`#game-${id} .dashboard__item__button`);
    
    // Busca a imagem do jogo específico usando o ID
    const imagem = document.querySelector(`#game-${id} .dashboard__item__img`);
    
    // Verifica se o botão tem a classe "return", significando que o jogo está alugado
    if (botao.classList.contains("dashboard__item__button--return")) {
        // Remove a classe do botão (volta para "Alugar")
        botao.classList.remove("dashboard__item__button--return");
        
        // Remove a classe de alugado da imagem
        imagem.classList.remove("dashboard__item__img--rented");
        
        // Altera o texto do botão para "Alugar"
        botao.textContent = "Alugar";
        
    // Verifica se NÃO existe outro jogo alugado
    } else if (!document.querySelector('.dashboard__item__button--return')) {
        // Adiciona a classe de return ao botão
        botao.classList.add("dashboard__item__button--return");
        
        // Adiciona a classe de alugado à imagem
        imagem.classList.add("dashboard__item__img--rented");
        
        // Altera o texto do botão para "Devolver"
        botao.textContent = "Devolver";
        
    // Se existe outro jogo alugado
    } else {
        // Exibe mensagem de alerta informando que já há um jogo alugado
        alert("Você já tem um jogo alugado. Devolva antes de alugar outro!");
    }
}
1 resposta

Oi, Carlos. Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Gostei da forma como você organizou a função alterarStatus(id) para buscar o botão e a imagem do jogo pelo id, porque isso deixa a solução bem direta e fácil de entender. Chamou atenção, de forma positiva, a regra que você criou para permitir apenas um jogo alugado por vez, usando document.querySelector('.dashboard__item__button--return') para validar o estado atual da página.

No futuro, você pode testar usar um retorno antecipado com return, porque isso ajuda a deixar a leitura mais simples quando existe uma regra de bloqueio.


const jogoAlugado = document.querySelector('.dashboard__item__button--return');

if (jogoAlugado && jogoAlugado !== botao) {
  alert('Voce ja tem um jogo alugado.');
  return;
}

Neste exemplo, o código verifica se já existe outro jogo alugado e interrompe a função antes de continuar, o que ajuda na organização da lógica.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!