Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[classList.contains()] Uma outra alternativa...

Olá, pessoal!

const html = document.querySelector('html')
const botoes = document.querySelectorAll('.app__card-button')
const banner = document.querySelector('.app__image')
const titulo = document.querySelector('.app__title')

const alterarContexto = (contexto, botao) => {
    html.setAttribute('data-contexto', `${contexto}`)
    banner.setAttribute('src', `./imagens/${contexto}.png`)
    
    switch (contexto) {
        case 'descanso-curto':
            titulo.innerHTML = `
Que tal dar uma respirada?<br>
<strong class="app__title-strong">Faça uma pausa curta!</strong>
            `
            break
        case 'descanso-longo':
            titulo.innerHTML = `
Hora de voltar à superfície.<br>
<strong class="app__title-strong">Faça uma pausa longa.</strong>
            `
            break
        default:
            titulo.innerHTML = `
Otimize sua produtividade,<br>
<strong class="app__title-strong">mergulhe no que importa.</strong>
            `
            break
    }

    !botao.classList.contains('active') ? botao.classList.add('active') : ''
}

const focoBotao = () => {

}

botoes.forEach(botao => {
    botao.addEventListener('click', () => {
        botoes.forEach(botao => botao.classList.remove('active'))
        const atributo = botao.getAttribute('data-contexto')
        if (atributo === 'short') {
            alterarContexto('descanso-curto', botao)
        } else if (atributo === 'long') {
            alterarContexto('descanso-longo', botao)
        } else {
            alterarContexto('foco', botao)
        }
    })
})

Gostaria de compartilhar com vocês o meu código. É apenas uma maneira alternativa de pensar onde utilizei o método .contains() no classList lá dentro da função alterarContexto().

Espero que ajude alguém.

Abraços,

Yago.

2 respostas
solução!

Olá Yago!

Tudo bem?

Obrigado por compartilhar seu código e sua maneira alternativa de pensar! É sempre bom ver diferentes abordagens para resolver um mesmo problema.

Pelo que entendi, você está utilizando o método classList.contains() para verificar se um botão possui a classe active dentro da função alterarContexto(). Essa é uma forma válida de verificar se um elemento possui uma determinada classe. Muito legal, parabéns.

Espero ter ajudado e bons estudos!

Olá, Renan. Tudo joia!

É isso mesmo. Muito obrigado!

At.te, Yago.