Standardmäßig geschlossene Seitenleiste

:information_source: Zusammenfassung ermöglicht es Administratoren, das Standardverhalten der Discourse-Seitenleiste pro Gruppe zu steuern
:hammer_and_wrench: Repository GitHub - nathan-nz/closed-sidebar-by-default: Allows control of the default sidebar behaviour · GitHub
:question: Installationsanleitung Wie installiert man ein Theme oder Theme-Komponente
:open_book: Neu bei Discourse-Themes? Einsteiger-Leitfaden zur Nutzung von Discourse-Themes

Diese Theme-Komponente installieren

Diese einfache Theme-Komponente ermöglicht es Administratoren, das Standardverhalten der Discourse-Seitenleiste pro Gruppe zu steuern.

Sie berücksichtigt weiterhin den vorherigen Zustand der Seitenleiste für diesen Benutzer/dieses Gerät, was bedeutet, dass sie beim Neuladen ein schönes, konsistentes Erlebnis bietet.

Anwendungsfälle

Der häufigste Anwendungsfall ist eine sauberere und einfachere Benutzeroberfläche für gelegentliche Besucher. Wenn sie beispielsweise für Discourse Meta verwendet würde, würden die Leute auf Folgendes stoßen:

statt auf die eher überladene:

Einstellungen

Es gibt eine Einstellung, einen einfachen Gruppenauswähler. Standardmäßig ist anonymous_users (ID 4) ausgewählt, aber du kannst jede beliebige Gruppe(n) verwenden.

Danksagungen

Vielen Dank an @don für die ursprüngliche Theme-Komponente, von der dies abgeleitet wurde:

8 „Gefällt mir“

Ja, ich benutze seit einigen Monaten Dons Version und mag sie sehr. Ich denke, dass es für völlig neue Nutzer, die auf die Seite kommen, etwas überwältigend sein kann – sie haben keine Ahnung, was sie da sehen. Die Seitenleiste auszublenden, macht die Benutzeroberfläche etwas weniger verwirrend. Aus meiner Sicht wissen Nutzer, die die Seite häufig besuchen, ohnehin schon, wo sie das Menü finden, wenn sie es brauchen.

Ich mag die Idee, dass die Seitenleiste standardmäßig geschlossen ist. Was ist der Unterschied zwischen den beiden Theme-Components?

Don’s Version hat keine Gruppeneinstellung

2 „Gefällt mir“

Vielen Dank. Ich wollte dir eigentlich einen Daumen nach oben geben, habe aber versehentlich zu oft auf das Herz geklickt und musste am Ende „54 Sekunden“ warten! Daher diese kurze Nachricht.

1 „Gefällt mir“

Ich verstehe den Reiz, die Seitenleiste standardmäßig geschlossen zu halten, besonders auf kleineren Bildschirmen, wo jeder Platz zählt. Vielleicht wäre es der beste Kompromiss, dies als Benutzereinstellung zu machen (oder den letzten Zustand zu speichern), da einige Leute ständig auf die Seitenleiste angewiesen sind, während andere sie nur selten nutzen.

Normalerweise merkt es sich den letzten Zustand. Allerdings ignoriert diese Komponente das, wenn sie aktiv ist.

Vielleicht gibt es einen cleveren Weg, das zu ändern.

1 „Gefällt mir“

Hallo :waving_hand:

Danke @nathank, dass du ein Thema für dieses Theme-Component erstellt hast! :hugs:

Ich denke, etwas in dieser Art sollte heutzutage funktionieren. Dieser Ansatz schließt die Seitenleiste nur beim ersten Laden. Danach wird das Standardverhalten (Erinnerung der Benutzereinstellung) wiederhergestellt.

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 „Gefällt mir“

Die Komponente blendet die Seitenleiste beim Aktualisieren einer Seite erneut aus. Es wäre toll, wenn dies der Standardzustand sein könnte, aber alle nachfolgenden Änderungen gespeichert würden.

1 „Gefällt mir“

Vielen Dank, @Don!

Ich habe das jetzt in den TC übernommen, und es funktioniert genau wie versprochen. Eine deutliche Verbesserung!!