Чат
- Что умеет
- Одна переписка на весь проект, в двух состояниях. Дан обработчик отправки — это чат целиком: лента и поле ввода с прикреплением файла; не дан — лента только на чтение, ровно то, что нужно журналу. Сообщение несёт текст, автора, время, необязательную пометку канала и до шести родов вложений: четыре библиотека узнаёт сама — аудио, изображение, видео, документ — и два наших, место и календарное событие.
- Как применять
- Лента, сообщение и поле ввода взяты из AI Elements, вендоренной в `components/ai-elements/` шагом 80-2; инструмент решает только, что в них появится. Четыре рода вложений библиотека узнаёт сама по типу содержимого, два наших нарисованы здесь строкой того же вида — чтобы под сообщением был один список, а не два. Прокрутка принадлежит `Conversation`: он держит низ и предлагает вернуться, и своей работы со скроллом здесь больше не появится. В сеть инструмент не ходит: сообщения приходят пропсом, отправленное уезжает наружу, а опрос и курсор остаются у того, кто владеет складом.
- Какую пользу даёт
- Всё, что показывает череду сообщений, — одна и та же вещь под разными именами: чат с человеком, чат с моделью, лента, журнал бота, входящие. До этого инструмента каждую из них собирали руками, и лента логов 77-5 была сложена из элементов списка при том, что библиотека уже лежала в репозитории. Одна реализация, три потребителя: вид блока, слой архитектора и будущий мессенджер.
Нужно поставить пакет: ai, streamdown, use-stick-to-bottom, nanoid
Пока никем не применяется — лежит готовым, ждёт первого вызывающего.