O cabeçalho da marca no menu móvel não expande completamente até redimensionar a janela

Estamos com um problema em que o menu do cabeçalho da marca no canto superior esquerdo só se expande parcialmente no celular quando tocado. Configuramos para não exibir a barra no celular. Se eu apenas tocar no menu hambúrguer, ele fica assim.

Mas se eu redimensionar a janela em qualquer direção, ela se expande totalmente e mostra todos os sublinks.

Como faço para que ele se expanda totalmente ao ser tocado, sem a necessidade de redimensionar a janela?

Descobri que em nosso fórum, quando clico apenas no menu hambúrguer, a classe “slide-in” não é adicionada à div “menu-panel”.

Mas assim que redimensiono a janela, ela é adicionada e o menu funciona corretamente.

Pelo que pude apurar, menu-panel e slide-in não vêm do nosso tema. Mas parece que slide-in é importante para fazê-lo funcionar. Por que slide-in não seria adicionado quando o menu é aberto? Por que redimensionar a janela do navegador faria com que ele fosse adicionado de repente?

É assim que vejo este componente no celular, sem outros temas instalados:

Não precisei redimensionar para obter isso, e quando redimensiono, não recebo a classe slide-in de forma alguma…

Parece que você está no Discourse 3.2, em vez da versão atual 3.3. Existem atualizações para este componente que dependem da versão 3.3, então você não as está recebendo no momento.

É possível que a atualização do Discourse e do componente resolva todos os seus problemas, mas se não, pode haver um conflito com outras personalizações.

2 curtidas

Você está certo, estamos usando o Discourse 3.2.3. Pensei ter entendido nesta postagem que o problema também existe na versão 3.3, mas a sua parece boa. Verificarei se é possível para nós atualizarmos para a 3.3, ou talvez instalar uma versão mais antiga do componente brand-header.

Está publicado em algum lugar que o componente requer a versão 3.3? Não vejo isso em lugar nenhum.

Você por acaso sabe quando foram feitas as atualizações que dependem da 3.3? Ou qual a última versão que funciona com a 3.2?

1 curtida

Ele não exige explicitamente, mas às vezes, ao fazer atualizações, sabemos que dependemos de um recurso mais novo do Discourse e fixamos o componente de tema em uma versão mais antiga do Discourse, o que impede que ele receba atualizações incompatíveis.

Quando isso é feito, os detalhes estão em um arquivo .discourse-compatibility:

Neste caso, você estaria fixado no commit com hash: 12e6f76e0508b262517efd5db2d7feca261dff86, que é DEV: move widgets to dedicated files, cleanup (#28) · discourse/discourse-brand-header@12e6f76 · GitHub

Desde essa alteração, o código do componente foi totalmente reestruturado devido a mudanças na forma como o cabeçalho no Discourse funciona.

Acho que isso destaca um bom problema para considerarmos, pois essa informação é bastante oculta e técnica. Talvez possamos adicionar uma mensagem no painel de administração dizendo que alguns componentes pararam de receber atualizações porque requerem recursos da versão mais recente do Discourse.

2 curtidas

Eu fiz um fork do componente, reverti para o commit 12e6f76 e o instalei em nosso fórum, mas o problema ainda existe. Isso não deveria corrigi-lo?

Não, esse é o commit ao qual você já está fixado, você está perdendo tudo o que vem depois.

1 curtida

Devo estar a entender mal alguma coisa. Não costumávamos ter este problema. Nalgum momento o problema ocorreu porque o componente fez alterações que requerem o Discourse 3.3 e atualizámos o componente, mas ainda estamos a usar o Discourse 3.2. Está correto? Se sim, não seria a solução mais simples reverter para a última versão do componente que funciona com o Discourse 3.2?

O componente não teria recebido essas alterações para a versão 3.3. Quando um componente é fixado em uma versão específica do Discourse, ele é essencialmente congelado em seu estado atual até que o Discourse seja atualizado.

Portanto, você não deve precisar fazer isso… a fixação deve fazer com que ele permaneça automaticamente na versão compatível mais recente, mas é possível que esse bug já existisse na versão do componente que você está usando.

1 curtida

Entendi agora… inteligente. É seguro presumir que não haverá nenhum esforço por parte do mantenedor para fazer o componente funcionar corretamente com a versão 3.2?

Fiz uma cópia do fórum e atualizei para a versão 3.3 e sim, isso resolve o problema. Estou verificando com nosso administrador para ver se é possível atualizar para a versão 3.3 no fórum ativo.

Obrigado!

1 curtida

Sim, infelizmente, temos apenas a capacidade de manter os componentes de tema na versão mais recente do Discourse, então isso pode acontecer com versões mais antigas de tempos em tempos.

Finalmente conseguimos atualizar o fórum ativo para a versão 3.3 e ele funcionou de repente. Obrigado novamente!

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.