L'en-tête de la marque dans le menu mobile ne se développe pas complètement jusqu'à ce que la fenêtre soit redimensionnée

Nous avons un problème où le menu d’en-tête de la marque en haut à gauche ne se développe que partiellement sur mobile lorsqu’on tape dessus. Nous l’avons configuré pour ne pas afficher la barre sur mobile. Si je tape juste sur le menu hamburger, cela ressemble à ceci.

Mais si je redimensionne ensuite la fenêtre dans n’importe quelle direction, elle s’agrandit complètement et affiche tous les sous-liens.

Comment faire pour qu’il s’agrandisse complètement lorsqu’on tape dessus sans avoir besoin de redimensionner la fenêtre ?

J’ai constaté que sur notre forum, lorsque je clique simplement sur le menu hamburger, la classe « slide-in » n’est pas ajoutée à la div « menu-panel ».

Mais dès que je redimensionne la fenêtre, elle est ajoutée et le menu fonctionne correctement.

Pour autant que je sache, menu-panel et slide-in ne proviennent pas de notre thème. Mais il semble que slide-in soit important pour que cela fonctionne. Pourquoi slide-in ne serait-il pas ajouté lorsque le menu est ouvert ? Pourquoi le redimensionnement de la fenêtre du navigateur le ferait-il soudainement ajouter ?

Voici comment je vois ce composant sur mobile sans autres thèmes installés :

Je n’ai pas eu à redimensionner pour obtenir cela, et lorsque je redimensionne, je n’obtiens pas du tout la classe slide-in

Il semble que vous soyez sur Discourse 3.2, plutôt que sur la version actuelle 3.3. Il y a des mises à jour de ce composant qui dépendent de la version 3.3, vous ne les recevez donc pas pour le moment.

Il est possible que la mise à jour de Discourse et du composant résolve tous vos problèmes, mais sinon, il pourrait y avoir un conflit avec d’autres personnalisations.

2 « J'aime »

Vous avez raison, nous utilisons Discourse 3.2.3. Je pensais avoir compris d’après ce post que le problème existait aussi dans la version 3.3 mais la vôtre semble correcte. Je vais vérifier s’il nous est possible de passer à la 3.3, ou peut-être d’installer une version plus ancienne du composant brand-header.

Est-il publié quelque part que le composant nécessite la version 3.3 ? Je ne vois rien de tel.

Savez-vous quand les mises à jour qui dépendent de la 3.3 ont été effectuées ? Ou quelle est la dernière version qui fonctionne avec la 3.2 ?

1 « J'aime »

Il ne l’exige pas explicitement, mais parfois, lors de mises à jour, nous nous appuyons sur une fonctionnalité plus récente de Discourse, nous épinglons le composant de thème à une ancienne version de Discourse, ce qui l’empêchera de recevoir des mises à jour incompatibles.

Lorsque cela est fait, les détails se trouvent dans un fichier .discourse-compatibility :

Dans ce cas, vous seriez épinglé au commit avec le hash : 12e6f76e0508b262517efd5db2d7feca261dff86, qui est DEV: move widgets to dedicated files, cleanup (#28) · discourse/discourse-brand-header@12e6f76 · GitHub

Depuis ce changement, le code du composant a été entièrement refactorisé en raison des modifications apportées au fonctionnement de l’en-tête dans Discourse.

Je pense que cela met en évidence un bon problème à considérer, ces informations sont assez enfouies et techniques. Peut-être pouvons-nous ajouter un message dans le panneau d’administration indiquant que certains composants ont cessé de recevoir des mises à jour car ils nécessitent des fonctionnalités de la dernière version de Discourse.

2 « J'aime »

J’ai bifurqué le composant, l’ai restauré au commit 12e6f76, et l’ai installé sur notre forum, mais le problème persiste. Cela ne devrait-il pas le résoudre ?

Non, c’est le commit auquel vous êtes déjà épinglé, il vous manque tout ce qui suit.

1 « J'aime »

Je dois mal comprendre quelque chose. Nous n’avions pas ce problème auparavant. À un moment donné, le problème est survenu parce que le composant a apporté des modifications qui nécessitent Discourse 3.3 et nous avons mis à jour le composant mais nous utilisons toujours Discourse 3.2. Est-ce exact ? Si oui, la solution la plus simple ne serait-elle pas de revenir à la dernière version du composant qui fonctionne avec Discourse 3.2 ?

Le composant n’aurait pas reçu ces modifications pour la 3.3. Lorsqu’un composant est épinglé à une version spécifique de Discourse, il est essentiellement figé dans son état actuel jusqu’à ce que Discourse soit mis à jour.

Vous ne devriez donc pas avoir besoin de faire cela… l’épinglage devrait automatiquement le maintenir sur la dernière version compatible, mais il est possible que ce bug existait déjà dans la version du composant que vous utilisez.

1 « J'aime »

Je comprends maintenant… malin. Peut-on supposer qu’il n’y aura aucun effort de la part du mainteneur pour que le composant fonctionne correctement avec la version 3.2 ?

J’ai fait une copie du forum et l’ai mis à niveau vers la version 3.3 et oui, cela résout le problème. Je vérifie avec notre administrateur pour voir s’il est possible de passer à la version 3.3 sur le forum principal.

Merci !

1 « J'aime »

Oui, malheureusement, nous n’avons que la bande passante nécessaire pour maintenir les composants de thème sur la dernière version de Discourse, donc cela peut arriver de temps en temps avec les anciennes versions.

Nous avons enfin pu mettre à jour le forum en direct vers la version 3.3 et cela fonctionne soudainement. Merci encore !

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