Change language

sf-community

Назначение

Форум в виде трёх отдельных вкладок: разделы, темы одного раздела и обсуждение
одной темы. Открытие строки открывает вкладку рядом с текущей — нет экрана,
на котором одновременно отображались бы дерево разделов, таблица тем и ветка.

Граница ответственности

Отвечает за навигацию по форуму и экран темы. Сами сообщения принадлежат
rp-threads, который браузер читает напрямую; вложения принадлежат rp-files
через сообщение link. Участники, роли и тикеты находятся за пределами этого
модуля.

Как создаётся тема

createTopic в rp-community создаёт идентификаторы темы и ветки и фиксирует
автора из токена; затем эта поверхность регистрирует ветку и записывает
первый пост в rp-threads. Разделение намеренное: идентификаторы, которые
может выбрать клиент, можно украсть, а вызов одним репозиторием другого — это
то, что запрещает архитектура.

Обновления в реальном времени

Ответы поступают через бизнес-канал Fujin (pushrouter) с помощью библиотеки
threads-state, а не посредством опроса. Push-сообщение содержит только
идентификаторы; текст перечитывается из rp-threads, где применяется предикат
чтения.

Прямые зависимости модуля

  • front-core, g-community, g-threads, signal-channel, threads-state

Членство в решении

  • communications

Исходный код

modules/surfaces/communications/sf-community