Боковая панель по умолчанию закрыта

:information_source: Описание позволяет администраторам управлять поведением боковой панели Discourse по умолчанию для каждой группы
:hammer_and_wrench: Репозиторий GitHub - nathan-nz/closed-sidebar-by-default: Allows control of the default sidebar behaviour · GitHub
:question: Руководство по установке Как установить тему или компонент темы
:open_book: Темы Discourse — для новичков? Руководство для начинающих по использованию тем Discourse

Установить этот компонент темы

Этот простой компонент темы позволяет администраторам управлять поведением боковой панели Discourse по умолчанию для каждой группы.

Он сохраняет предыдущее состояние боковой панели для данного пользователя/устройства, что обеспечивает приятный и последовательный опыт при перезагрузке страницы.

Сценарий использования

Наиболее распространенный сценарий использования — более чистый и простой интерфейс для случайных посетителей. Например, если использовать это на Meta Discourse, пользователи увидят следующее:

вместо более перегруженного:

Настройки

Есть одна настройка — простой выбор группы. По умолчанию установлена группа anonymous_users (ID 4), но вы можете использовать любую группу или группы.

Благодарности

Большое спасибо @don за создание оригинального компонента темы, от которого был сделан этот форк:

8 лайков

Да, я пользуюсь версией Дона уже несколько месяцев и мне она очень нравится. Думаю, что для совершенно нового пользователя, оказавшегося на сайте, это может быть немного пугающе: он понятия не имеет, что именно перед ним. Скрытие боковой панели делает интерфейс немного менее запутанным. По моему мнению, после нескольких визитов на сайт пользователь уже знает, где искать меню, когда оно ему нужно.

Мне нравится идея, что боковая панель по умолчанию закрыта. В чём разница между этими двумя компонентами темы?

В версии Донa нет настройки группы

2 лайка

Большое спасибо. Я пытался поставить вам «лайк», но перестарался с кликами по сердечку и в итоге вынужден был ждать «54 секунды»! Поэтому эта короткая заметка.

1 лайк

Я понимаю привлекательность идеи по умолчанию скрывать боковую панель, особенно на маленьких экранах, где каждое свободное место на счету. Возможно, лучшим компромиссом было бы сделать это настраиваемой пользовательской опцией (или запоминать последнее состояние), поскольку одни пользователи постоянно полагаются на боковую панель, а другие пользуются ею крайне редко.

Обычно он запоминает последнее состояние. Однако, когда этот компонент активен, он всё это сбрасывает.

Возможно, есть более умный способ добиться этого.

1 лайк

Привет :waving_hand:

Спасибо @nathank за создание темы для этого компонента темы! :hugs:

Думаю, сейчас должно работать что-то вроде этого. Этот подход будет скрывать боковую панель только при первоначальной загрузке, а после этого будет возвращаться к стандартному поведению (запоминанию предпочтений пользователя).

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 лайк

Компонент снова скрывает боковую панель при обновлении страницы. Было бы здорово, если бы это стало состоянием по умолчанию, но при этом запоминались бы все последующие изменения.

1 лайк

Большое спасибо, @Don!

Я внедрил это в TC, и оно работает именно так, как заявлено. Заметное улучшение!!