Files
bare/docs/decisions/078-new-chat-is-a-choice.md
T

3.4 KiB

ADR-078: «Новый чат» — выбор действия

Контекст

На экране #/new одновременно стояли две одинаковые строки: @ник и #имя комнаты. Это две независимые формы, но экран не говорил «или», а на десктопе их кнопки > скрывал общий стиль строки чата. Человек мог заполнить обе строки и ожидать, что ник станет участником комнаты. Enter при этом отправлял только форму поля в фокусе: свой ник давал «нельзя писать себе», а название комнаты создавало комнату только с владельцем.

Название комнаты не является адресом. Оно не уникально, сервер не даёт поиск комнат и возвращает пользователю только комнаты, где он уже состоит. Из-за сквозного шифрования новый участник получает доступ после того, как владелец добавит его по нику и раздаст новый ключ (ADR-018). Самостоятельно войти по одному открытому названию нельзя.

Решение

  • #/new показывает переключатель «личный чат / новая комната» и только одну форму за раз. У каждой формы есть видимая подпись, текстовая кнопка и своя строка ошибки. Начальное поле не фокусируется автоматически.
  • Сценарий комнаты прямо называет её новой и приватной: сначала в ней только создатель; если владельцу другой комнаты нужен этот пользователь, владелец добавляет его, после чего комната сама появляется в списке.
  • После создания открывается #/room/<id>/members, а не пустая лента. Создатель сразу видит себя владельцем и форму добавления людей.
  • В шапке комнаты рядом с именем стоит подпись · участники N внутри той же кнопки. Число — размер состава, не присутствие онлайн; кнопка ведёт на экран участников.

Последствия

Заполнить личный чат и комнату как одну составную форму больше нельзя. Кнопки действий видны и на десктопе, и на мобильном; Enter относится только к показанной форме.

Вход по имени, публичный каталог и ссылки-приглашения не добавляются. Такой сценарий потребует отдельного адреса или уникальности, правил одобрения и раздачи ключа; это не изменение текста формы.