Si je me souviens bien, le wrapper supplémentaire facilite l’alignement du titre avec le contenu du sujet car je peux définir la largeur combinée de .header-contents__toggle-and-logo sur var(--d-sidebar-width), et c’est la même largeur que la barre latérale quel que soit le contenu.
Sans le wrapper supplémentaire, la mise en page est réalisable… mais avec deux colonnes de grille, je ne peux pas compter sur une largeur unique pour les deux.
Je dois supposer que le sélecteur de barre latérale aura toujours une largeur statique, puis calculer la largeur maximale du logo en fonction de cela. Cela fonctionne, mais je me souviens que c’était plus fragile… Je n’ai pas regardé cela depuis un moment, mais peut-être que cela vaut la peine d’essayer à nouveau ![]()
Pour en revenir à cela… Je peux comprendre pourquoi cela a été fait avec une substitution. Sans cela, vous devez décorer le widget de titre ou d’icônes d’en-tête, vous finissez donc par ajouter du contenu à l’intérieur de .title ou .panel, ce qui rend l’alignement centré de la barre de recherche plus difficile… et nécessite du CSS qui rend la mise en page plus fragile et rend la compatibilité avec d’autres composants d’en-tête plus difficile. Idéalement, le contenu de la barre de recherche devrait être en dehors de ces divs, mais il n’y a rien auquel se raccrocher pour le faire.
Nous pouvons maintenant ajouter une sortie de plugin aux widgets, donc cela pourrait aider…
Cela permettrait d’ajouter du contenu avant la div .panel, plutôt qu’à l’intérieur avec decorateWidget. Dans ce cas, la substitution de modèle pourrait être supprimée du composant header-search, et un nouveau connecteur peut être ajouté à :
javascripts/discourse/connectors/before-header-panel
qui pourrait contenir
<MountWidget @widget="search-banner" />
Cependant, ajouter une sortie de plugin à un widget pour pouvoir ajouter un widget à une sortie de plugin semble un peu compliqué… @david/@cvx savez-vous si cela serait mauvais pour les performances ou causerait d’autres problèmes ?

