Fix chats does not sorting by local messages (#701)#765
Fix chats does not sorting by local messages (#701)#765
Conversation
There was a problem hiding this comment.
@SleepySquash Нешел небольшой баг, если в чате много непрочитаных cообщений, то локальные сообщения не будут добавляться в пагинацию либо в хайв. Пока что не придумал как можно это пофиксить, но когда реализуется наша идея с хайвом с пробелами, эта проблема уйдет.
Видео
2023-12-26.12-30-50.mp4
| } else { | ||
| send.field.focus.requestFocus(); |
There was a problem hiding this comment.
@SleepySquash Тут каждый раз при отправке сообщения на телефоне терялся фокус и скрывалась клавитура. Мне кажется что намного удобней чтобы фокус оставался.
| /// Initializes [ChatItemHiveProvider.boxEvents] subscription. | ||
| Future<void> _initLocalSubscription() async { | ||
| _localSubscription = StreamIterator(_local.boxEvents); | ||
| while (await _localSubscription!.moveNext()) { | ||
| final BoxEvent event = _localSubscription!.current; | ||
| final ChatItemKey key = ChatItemKey.fromString(event.key); | ||
|
|
There was a problem hiding this comment.
Во всём этом меня смущает только одна вещь - если тут механизм забарахлит и по какой-то причине не будет добавлено сообщение, которое по факту будет последним, то мы банально заблокируем чат в старом состоянии без возможности это сообщение где-нибудь увидеть - счётчик снизу на "чаты" будет "1", по факту сообщение было добавлено, но не рисуется. Эта проблема, #691, иногда воспроизводится - висит последнее сообщение какое-либо, но в списке сообщений оно не рисуется. Помогает несколько рефрешей страницы и прокрутка вверх/вниз, напрягает - это уже неправильное поведение. Боюсь, с заменой lastItemа на хайв мы можем вовсе потерять тогда и отображение в списке чатов последнего айтема корректное.
Кстати, есть мысли, что и это, и #691 связаны с #777 - вероятно, события в чат могут прилетать, но игнорироваться, т.к. страница пагинации уже версию обновила на свежую?
Предлагаю решить эти два issue сначала, а потом merge'ить этот PR, с ним всё остальное LGTM.
Resolves #701
Synopsis
При отправке сообщения сначала публикуется локальное сообщение. При этом чат остаётся на своём месте в списке чатов, не поднимаясь наверх.
Solution
Будет реализована сортировка по локальных сообщениях.
Checklist
k::labels applied