Боковая панель чата

:information_source: Краткое описание Открывается автоматически и отображает чат в виде боковой панели, пока есть место, и использует доступную высоту
:hammer_and_wrench: Репозиторий GitHub - Arkshine/discourse-chat-sidebar · GitHub
:question: Руководство по установке Как установить тему или компонент темы
:open_book: Новичок в темах Discourse? Начинающий гайд по использованию тем Discourse

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

Благодарности: @Alon1 (спонсированный запрос)[1]

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

  • Поддержка изменения размера окна Windows
  • Поддержка редактора сообщений (Composer)
  • Возможность закрепления как к содержимому, так и к окну с обеих сторон
  • Пользователь может выбрать положение (сохраняется в локальном хранилище браузера)
  • Возможность возврата к исходному состоянию чата, если он был ранее открыт
  • Исходные настройки пользователя чата не изменяются
  • Частичная поддержка тем (большинство популярных)

Это должно работать с большинством тем.
Сообщите, если отсутствуют какие-либо опции или что-то не работает в определённой теме! :smile:

Настройки

Название По умолчанию Описание
breakpoint auto Точка перехода в пикселях для появления боковой панели чата.
Установите значение auto, чтобы использовать ширину боковой панели и контента по умолчанию в качестве естественной точки перехода (рекомендуется).
width 400px Ширина боковой панели чата.
position [2] right Положение боковой панели чата.

left: Закрепить с левой стороны контента
right: Закрепить с правой стороны контента
outside-left: Закрепить с левой стороны окна
outside-right: Закрепить с правой стороны окна
theme_style По возможности использовать стиль текущей темы для этих положений боковой панели чата.
Доступно для большинства популярных тем.
Это ненадёжная настройка (имя темы может быть изменено).
Отключите, чтобы использовать стиль темы по умолчанию.
allow_user_preference[3] Разрешить пользователям устанавливать свои настройки боковой панели чата.
Примечание: это сохраняется в локальном хранилище браузера пользователя.

Доступные значения:
position: Разрешить пользователям устанавливать положение боковой панели чата

Планы

  • Тесты
  • Более плавные переходы
  • Дополнительные предпочтения пользователя?

Заметки разработчика

Изначально я пытался вставить компонент <ChatDrawer /> в другой выходной канал, чтобы его было легче манипулировать и сохранять в потоке. К сожалению, исходный компонент нельзя полностью отключить (я имею в виду события). По крайней мере, я не смог найти способ его переопределить.

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


  1. Если интересно, случай использования Alon здесь. ↩︎

  2. Обязательно обновите страницу. ↩︎

  3. Важно: эта настройка использует новейший API для отображения значка в заголовке и требует последней версии Discourse. ↩︎

25 лайков

Отлично сделано! :clap: :slight_smile:

Поддерживает ли это Discourse Bars 🍻 🍸 (a sidebar framework), так как было бы здорово совместить его с другими виджетами боковой панели?

7 лайков

К сожалению, в данный момент поддержка Discourse Bars недоступна.

Компонент использует оригинальный чат-ящик, а позиционирование выполняется вручную. Если мы не сможем использовать или переместить оригинальный компонент <ChatDrawer /> в нужное место, это будет сложно, полагаю. Однако я согласен — это было бы отлично! :slight_smile:

По крайней мере, его можно отобразить рядом с боковой панелью Bars

Мой компонент использует элемент #main-outlet-wrapper в качестве опорной точки, поэтому всё, что находится внутри, будет работать корректно.

4 лайка

Ого, это просто супер!

3 лайка

Это работает только если боковая панель свернута? Я заметил, что если я не сверну свою боковую панель, боковая панель чата не отображается.

1 лайк

В текущей версии основное содержимое не сжимается принудительно, если недостаточно места для размещения боковой панели чата. Это сделано намеренно.

Возможно, есть ситуации, когда это может быть полезно. Я не против добавить настройку для пользователя, позволяющую это изменить. :thinking:

1 лайк

Понял, спасибо за компонент, он работает довольно круто.

1 лайк

Полагаю, этот компонент больше не работает начиная с версии `3.6.0.beta2-latest`? Неважно, что я выбираю, он всегда находится справа, как в стандартном интерфейсе… Работает ли это у кого-нибудь ещё?

Этот компонент действительно работает как ожидалось! Я в основном тестировал его на экране моего MacBook, и когда у компонента не было достаточно места, он просто ничего не отображал, что, вероятно, и ввело меня в заблуждение. Сейчас всё работает идеально.

2 лайка

Я пока не тестировал, но спасибо за сообщение! Скоро проверю.

2 лайка

супер-компонент :+1: это очень хорошая идея

Я создал PR для исправления известных устареваний. :+1:

Спасибо @DevTeVe за тестирование!

4 лайка

Огромное спасибо за то, что пошли навстречу и помогли мне :heart:!

Итак, я обсуждал это с @Arkshine в офлайне, и поскольку у меня было несколько предложений, мы решили, что лучше оставить их здесь!

  1. Изменяемое окно чата (ширина и высота)
  2. Возможность оставлять его плавающим, даже если оно перекрывает текст на экране.
  3. Было бы здорово, если бы ширина также могла быть автоматической; тогда чат всегда найдет способ поместиться, даже если он будет выглядеть маленьким. В настройках (не по умолчанию) можно было бы добавить параметры вроде «мин. пикс.» и предупреждение: «Если установлено, чат вернется к стандартному виду, если значение меньше xxx».
2 лайка

Привет! Теперь, когда можно добавлять избранные чаты и каналы личных сообщений в «Избранное», есть ли способ, чтобы список «Избранное» с чатами и каналами личных сообщений отображался по умолчанию в боковой панели чата? Спасибо.

Обновление: Я имею в виду, что если ничего не добавлено в «Избранное», ничего не менять, а в противном случае отображать избранные каналы?

1 лайк

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

Привет, боковая панель чата у меня всё ещё работает, но у меня есть это предупреждение в виде красного баннера:

Getting rid of the big red banner, how?

В консоли я вижу следующее:

Я исправил ошибку. Попробуйте и дайте знать! :+1:

4 лайка

Отлично, баннер исчез, спасибо.

2 лайка