Barra lateral fechada por padrão

:information_source: Resumo permite que administradores controlem o comportamento padrão da barra lateral do Discourse por grupo
:hammer_and_wrench: Repositório GitHub - nathan-nz/closed-sidebar-by-default: Allows control of the default sidebar behaviour · GitHub
:question: Guia de Instalação Como instalar um tema ou componente de tema
:open_book: Novo em Temas do Discourse? Guia para iniciantes sobre o uso de Temas do Discourse

Instalar este componente de tema

Este simples componente de tema permite que administradores controlem o comportamento padrão da barra lateral do Discourse por grupo.

Ele continua respeitando o estado anterior da barra lateral para aquele usuário/dispositivo, o que significa que, ao recarregar, oferece uma experiência consistente e agradável.

Caso de uso

O caso de uso mais comum é uma interface mais limpa e simples para visitantes casuais. Por exemplo, se usado no Discourse Meta, as pessoas chegariam a isso:

em vez do bastante mais agitado:

Configurações

Há uma configuração, um simples seletor de grupo. O padrão é anonymous_users (ID 4), mas você pode usar qualquer grupo(s).

Agradecimentos

Muito obrigado ao @don por criar o componente de tema original do qual este é um fork:

8 curtidas

Sim, tenho usado a versão do Don há alguns meses e realmente gosto dela. Acho que quando um usuário totalmente novo chega ao site, pode ser um pouco avassalador, pois ele não tem ideia do que está vendo. Esconder a barra lateral torna a interface um pouco menos confusa. Do meu ponto de vista, depois que alguém visita o site várias vezes, já sabe onde procurar o menu quando precisar.

Gosto da ideia de ter a barra lateral fechada por padrão. Qual é a diferença entre os dois componentes de tema?

A versão do Don não possui uma configuração de grupo

2 curtidas

Muito obrigado. Tentei dar um “joinha”, mas acabei clicando demais no coração e tive que esperar “54 segundos”! Por isso esta mensagem curta.

1 curtida

Entendo o apelo de ter a barra lateral fechada por padrão, especialmente em telas menores, onde cada espaço é importante. Talvez torná-la uma preferência do usuário (ou lembrar do último estado) fosse o melhor compromisso, já que algumas pessoas dependem constantemente da barra lateral, enquanto outras raramente a usam.

Normalmente, ele lembra do último estado. No entanto, esse componente ignora isso quando está ativo.

Talvez haja uma maneira mais inteligente de fazer isso.

1 curtida

Olá :waving_hand:

Obrigado @nathank por criar um tópico para este componente de tema! :hugs:

Acho que algo assim deve funcionar nos dias de hoje. Esta abordagem fechará a barra lateral apenas no carregamento inicial e, após isso, voltará ao comportamento padrão (lembrando a preferência do usuário).

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 curtida

O componente esconde novamente a barra lateral ao atualizar a página. Seria legal se isso pudesse ser o estado padrão, mas lembrando de quaisquer alterações subsequentes.

1 curtida

Muito obrigado, @Don!

Incorporei isso ao TC agora e funciona exatamente como anunciado. Uma melhoria significativa!!