Vous pouvez essayer ce petit script. Ajoutez-le à votre thème ou à un nouveau composant HTML dans l’onglet Head.
Il masque la barre d’outils selon les conditions suivantes :
- Uniquement pour les nouveaux sujets / la modification du premier message d’un sujet / les brouillons de sujet
- Vue mobile
- Si l’utilisateur n’a pas de préférence enregistrée. [1]
Le code ne modifie pas les préférences de l’utilisateur.
<script type="text/discourse-plugin" version="0.8">
const { on, observes } = require("discourse-common/utils/decorators");
const serviceComposer = api.container.lookup("service:composer");
function canUpdateToolbar(context) {
return (
// Nouveau sujet / Modification du premier message / Brouillon de sujet
context._isNewTopic &&
// La barre d'outils n'est pas masquée
context.showToolbar &&
// Vue mobile uniquement
context.site.mobileView &&
// Ne pas outrepasser la préférence de l'utilisateur
context.keyValueStore.get("toolbar-enabled") === undefined
);
}
function updateShowToolBar(value) {
serviceComposer._wasToolbarEnabled = !value;
// Masque la barre d'outils sans mémoriser l'état dans le navigateur de l'utilisateur.
serviceComposer._toolbarEnabled = value;
// Actualise le getter calculé
serviceComposer.notifyPropertyChange("showToolbar");
}
api.modifyClass("component:composer-editor", {
pluginId: "composer-editor-toolbar",
@observes("composer.action")
_composerSwitchAction() {
// Gère la situation lors du passage d'une réponse à un nouveau sujet
// sans fermer le compositeur.
if (canUpdateToolbar(this)) {
updateShowToolBar(false);
}
},
@on("didInsertElement")
_composerEditorInit() {
this.appEvents.one(`${this.composerEventPrefix}:will-open`, () => {
if (canUpdateToolbar(this)) {
updateShowToolBar(false);
}
});
this._super(...arguments);
},
@on("willDestroyElement")
_composerClosed() {
this._super(...arguments);
// Restaure la barre d'outils si elle est masquée manuellement.
if (serviceComposer._wasToolbarEnabled) {
updateShowToolBar(true);
}
},
});
</script>
Une fois qu’un utilisateur clique sur le sélecteur, le navigateur mémorise l’état ↩︎