Barra laterale chiusa per impostazione predefinita

:information_source: Riepilogo consente agli amministratori di controllare il comportamento predefinito della barra laterale di Discourse per gruppo
:hammer_and_wrench: Repository GitHub - nathan-nz/closed-sidebar-by-default: Allows control of the default sidebar behaviour · GitHub
:question: Guida all’installazione Come installare un tema o un componente del tema
:open_book: Prima volta con i temi di Discourse? Guida per principianti all’uso dei temi di Discourse

Installa questo componente del tema

Questo semplice componente del tema consente agli amministratori di controllare il comportamento predefinito della barra laterale di Discourse per gruppo.

Rispetta lo stato precedente della barra laterale per quell’utente/dispositivo, il che significa che al ricaricamento offre un’esperienza coerente e gradevole.

Caso d’uso

Il caso d’uso più comune è un’interfaccia utente più pulita e semplice per i visitatori occasionali. Ad esempio, se utilizzato per Discourse Meta, gli utenti atterrebbero su questo:

invece del più affollato:

Impostazioni

C’è un’unica impostazione, un semplice selettore di gruppi. Il valore predefinito è anonymous_users (ID 4), ma è possibile utilizzare qualsiasi gruppo.

Ringraziamenti

Un ringraziamento speciale a @don per aver creato il componente del tema originale da cui questo è stato derivato:

8 Mi Piace

Sì, sto usando la versione di Don da qualche mese e mi piace davvero. Credo che quando un nuovo utente arriva sul sito per la prima volta, possa sentirsi un po’ sopraffatto, senza avere la minima idea di cosa stia guardando. Nascondere la barra laterale rende l’interfaccia un po’ meno confusa. Secondo me, una volta che qualcuno ha visitato il sito molte volte, sa già dove cercare il menu quando ne ha bisogno.

Mi piace l’idea di avere la barra laterale chiusa di default. Qual è la differenza tra i due componenti del tema?

La versione di Don non ha un’impostazione per i gruppi

2 Mi Piace

Grazie mille. Ho provato a darti un pollice in su, ma ho sbagliato cliccando troppo sul cuore, e alla fine ho dovuto aspettare “54 secondi”! Ecco questo breve messaggio.

1 Mi Piace

Posso capire il fascino di avere la barra laterale chiusa per impostazione predefinita, soprattutto sugli schermi più piccoli dove ogni spazio conta. Forse renderla una preferenza dell’utente (o ricordare lo stato precedente) sarebbe il miglior compromesso, dato che alcune persone si affidano costantemente alla barra laterale mentre altre la usano raramente.

Di solito ricorda l’ultimo stato. Tuttavia, questo componente annulla tutto ciò quando è attivo.

Forse esiste un modo più intelligente per farlo.

1 Mi Piace

Ciao :waving_hand:

Grazie @nathank per aver creato un argomento per questo componente tematico! :hugs:

Penso che qualcosa del genere dovrebbe funzionare al giorno d’oggi. Questo approccio chiuderà la barra laterale solo al caricamento iniziale, e dopo di che tornerà al comportamento predefinito (ricordando la preferenza dell’utente).

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 Mi Piace

Il componente nasconde di nuovo la barra laterale quando si aggiorna una pagina. Sarebbe fantastico se potesse essere lo stato predefinito, ma ricordare tutte le modifiche successive.

1 Mi Piace

Grazie mille @Don!

L’ho integrato nel TC e funziona esattamente come promesso. Un netto miglioramento!!