Notei que sempre que clicasse no botão Sortear ou Reiniciar, mesmo sem colocar algum número, o botão ainda funcionava, ele mudava o tipo de classe do botão, ou seja, se clicasse no Reiniciar desabilitado o botão mudava da cor cinza para azul. Então tentei resolver isso e aparentemente deu certo.
Fiz o seguinte:
Criei uma nova função para desabilitar o botão Sortear quando ele efetivamente fosse ativado, para assim fazer sentido ter um botão reiniciar.
function alterarStatusBotaoSortear() {
let botaoSortear = document.getElementById('btn-sortear');
if (botaoSortear.classList.contains('container__botao')) {
botaoSortear.classList.remove('container__botao');
botaoSortear.classList.add('container__botao-desabilitado');
} else {
botaoSortear.classList.remove('container__botao-desabilitado');
botaoSortear.classList.add('container__botao');
}
}
Em seguida acresci alterarStatusBotaoSortear( ) dentro de sortear( ). Aqui coloquei a nova função ao final de todas as verificações, dentro do bloco else :
function sortear(){
let quantidade = parseInt(document.getElementById('quantidade').value);
let de = parseInt(document.getElementById('de').value);
let ate = parseInt(document.getElementById('ate').value);
let sorteados = [];
let numero;
if (quantidade > (ate - de +1)) {
alert('A quantidade de números não pode ser menor que o intervalo informado');
return;
}
if (de >= ate ) {
alert('O número mínimo não pode ser maior que o máximo! Digite outro número.');
return;
} else {
for (let i = 0; i < quantidade; i++) {
numero = obterNumeroAleatorio(de, ate);
while (sorteados.includes(numero)) {
numero = obterNumeroAleatorio(de, ate);
}
sorteados.push(numero);
}
let resultado = document.getElementById('resultado');
resultado.innerHTML = `<label class="texto__paragrafo">Números sorteados: ${sorteados}.</label>`;
alterarStatusBotaoSortear(); //Nova função
alterarStatusBotao();
}
}
Porém, notei que os botões ainda estavam alternando de cor ao clicar neles. Tive que pesquisar um pouco pra tentar resolver isso. Então entrei no arquivo style.css e alterei a classe .container__botao-desabilitado, acrescendo uma nova linha:
.container__botao-desabilitado {
border-radius: 16px;
background: #6f6f70;
padding: 16px 24px;
font-size: 24px;
width: 100%;
font-weight: 700;
border: none;
cursor: not-allowed;
pointer-events: none; //Nova linha
}
Dessa maneira o botão reiniciar faz mais sentido existir no jogo, desabilitando o Sortear após ele ser habilitado e ao clicar em Reiniciar o jogo reseta e desabilita o respectivo botão. Fiz corretamente ou teria outra maneira de contornar isso?