Barre latérale fermée par défaut

:information_source: Résumé permet aux administrateurs de contrôler le comportement par défaut de la barre latérale Discourse par groupe
:hammer_and_wrench: Dépôt GitHub - nathan-nz/closed-sidebar-by-default: Allows control of the default sidebar behaviour · GitHub
:question: Guide d’installation Comment installer un thème ou un composant de thème
:open_book: Nouveau sur les thèmes Discourse ? Guide pour les débutants sur l’utilisation des thèmes Discourse

Installer ce composant de thème

Ce simple composant de thème permet aux administrateurs de contrôler le comportement par défaut de la barre latérale Discourse par groupe.

Il continue de respecter l’état précédent de la barre latérale pour cet utilisateur / appareil, ce qui signifie qu’au rechargement, il offre une expérience agréable et cohérente.

Cas d’utilisation

Le cas d’utilisation le plus courant est une interface utilisateur plus propre et plus simple pour les visiteurs occasionnels. Par exemple, s’il est utilisé pour Discourse Meta, les personnes atterriraient sur ceci :

au lieu de celui-ci, plutôt chargé :

Paramètres

Il y a un seul paramètre, un simple sélecteur de groupe. Il est défini par défaut sur anonymous_users (ID 4), mais vous pouvez utiliser n’importe quel groupe(s).

Remerciements

Un grand merci à @don pour avoir créé le composant de thème original dont celui-ci est une fourche :

8 « J'aime »

oui, j’utilise la version de Don depuis quelques mois et je l’apprécie vraiment. Je pense que lorsqu’un tout nouvel utilisateur arrive sur le site, cela peut être un peu accablant ; il n’a aucune idée de ce qu’il regarde. Masquer la barre latérale rend l’interface un peu moins confuse. Selon moi, une fois qu’une personne a visité le site plusieurs fois, elle sait où chercher le menu quand elle en a besoin.

J’aime l’idée d’avoir la barre latérale fermée par défaut. Quelle est la différence entre les deux composants de thème ?

La version de Don ne propose pas de paramètre de groupe

2 « J'aime »

Merci beaucoup. J’ai essayé de vous mettre un pouce levé, mais j’ai foiré en cliquant trop sur le cœur, et je me suis retrouvé obligé d’attendre « 54 secondes » ! D’où ce petit message.

1 « J'aime »

Je comprends l’intérêt d’avoir la barre latérale fermée par défaut, surtout sur les petits écrans où chaque espace compte. Peut-être en faire une préférence utilisateur (ou mémoriser l’état précédent) serait le meilleur compromis, car certaines personnes dépendent constamment de la barre latérale tandis que d’autres l’utilisent rarement.

Il se souvient généralement de l’état précédent. Cependant, ce composant annule cela lorsqu’il est actif.

Il existe peut-être une méthode plus intelligente pour y parvenir.

1 « J'aime »

Bonjour :waving_hand:

Merci @nathank d’avoir créé un sujet pour ce composant de thème ! :hugs:

Je pense que quelque chose comme cela devrait fonctionner de nos jours. Cette approche ne fermera la barre latérale que lors du chargement initial, et par la suite, elle reviendra au comportement par défaut (en se souvenant de la préférence de l’utilisateur).

import { apiInitializer } from "discourse/lib/api";

const HIDE_SIDEBAR_KEY = "sidebar-hidden";
const INITIALIZED_KEY = "closed-sidebar-by-default-initialized";

export default apiInitializer("1.8.0", (api) => {
  const keyValueStore = api.container.lookup("service:key-value-store");
  const userGroups = settings.user_in_closed_sidebar_groups;

  if (userGroups) {
    if (!keyValueStore.getItem(INITIALIZED_KEY)) {
      keyValueStore.setItem(HIDE_SIDEBAR_KEY, "true");
      keyValueStore.setItem(INITIALIZED_KEY, "true");
    }
  } else {
    if (keyValueStore.getItem(INITIALIZED_KEY)) {
      keyValueStore.removeItem(HIDE_SIDEBAR_KEY);
      keyValueStore.removeItem(INITIALIZED_KEY);
    }
  }
});
1 « J'aime »

Le composant masque à nouveau la barre latérale lorsque vous actualisez une page. Ce serait génial si ce pouvait être l’état par défaut, tout en mémorisant les modifications ultérieures.

1 « J'aime »

Merci beaucoup @Don !

J’ai intégré cela dans le TC maintenant, et ça fonctionne exactement comme promis. Une amélioration notable !!