Barra lateral cerrada por defecto

:information_source: Resumen permite a los administradores controlar el comportamiento predeterminado de la barra lateral de Discourse por grupo
:hammer_and_wrench: Repositorio GitHub - nathan-nz/closed-sidebar-by-default: Allows control of the default sidebar behaviour · GitHub
:question: Guía de instalación Cómo instalar un tema o componente de tema
:open_book: ¿Nuevo en los temas de Discourse? Guía para principiantes sobre el uso de temas de Discourse

Instalar este componente de tema

Este sencillo componente de tema permite a los administradores controlar el comportamiento predeterminado de la barra lateral de Discourse por grupo.

Sigue respetando el estado anterior de la barra lateral para ese usuario/dispositivo, lo que significa que al recargar proporciona una experiencia agradable y coherente.

Caso de uso

El caso de uso más común es una interfaz de usuario más limpia y sencilla para los visitantes casuales. Por ejemplo, si se utiliza para Discourse Meta, las personas llegarían a esto:

en lugar del bastante más recargado:

Configuración

Hay una configuración, un selector de grupo simple. Por defecto es anonymous_users (ID 4), pero puedes usar cualquier grupo(s).

Agradecimientos

Muchas gracias a @don por crear el componente de tema original del que esto es una bifurcación:

8 Me gusta

Sí, he estado usando la versión de Don durante algunos meses y realmente me gusta. Creo que cuando un usuario completamente nuevo llega al sitio, puede resultar un poco abrumador; no tiene ni idea de lo que está viendo. Ocultar la barra lateral hace que la interfaz de usuario sea un poco menos confusa. Según mi forma de pensar, una vez que alguien visita el sitio muchas veces, sabe dónde buscar el menú cuando lo necesita.

Me gusta la idea de que la barra lateral esté cerrada de forma predeterminada. ¿Cuál es la diferencia entre los dos componentes de tema?

La versión de Don no tiene una configuración de grupo

2 Me gusta

Muchas gracias. Intenté darte un «me gusta», pero me equivoqué al pulsar el corazón demasiadas veces y al final tuve que esperar «54 segundos». Por eso este mensaje breve.

1 me gusta

Puedo ver el atractivo de tener la barra lateral cerrada por defecto, especialmente en pantallas más pequeñas donde cada poco de espacio ayuda. Quizás hacer que sea una preferencia del usuario (o recordar el último estado) sería el mejor compromiso, ya que algunas personas dependen constantemente de la barra lateral mientras que otras rara vez la usan.

Normalmente recuerda el último estado. Sin embargo, este componente lo anula cuando está activo.

Quizás haya una forma más inteligente de hacerlo.

1 me gusta

Hola :waving_hand:

¡Gracias @nathank por crear un tema para este componente de tema! :hugs:

Creo que algo así debería funcionar hoy en día. Este enfoque solo cerrará la barra lateral en la carga inicial, y después de eso, volverá al comportamiento predeterminado (recordando la preferencia del usuario).

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 me gusta

El componente vuelve a ocultar la barra lateral cuando se actualiza la página. Sería genial si ese fuera el estado predeterminado, pero que recordara cualquier cambio posterior.

1 me gusta

¡Muchas gracias, @Don!

Lo he incorporado al TC ahora, y funciona exactamente como se anuncia. ¡Una mejora notable!