Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix chats does not sorting by local messages (#701) #765

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

krida2000
Copy link
Contributor

@krida2000 krida2000 commented Dec 26, 2023

Resolves #701

Synopsis

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

Solution

Будет реализована сортировка по локальных сообщениях.

Checklist

  • Created PR:
    • In draft mode
    • Name contains issue reference
    • Has type and k:: labels applied
  • Before review:
    • Documentation is updated (if required)
    • Tests are updated (if required)
    • Changes conform code style
    • CHANGELOG entry is added (if required)
    • FCM (final commit message) is posted or updated
    • Draft mode is removed
  • Review is completed and changes are approved
    • FCM (final commit message) is approved
  • Before merge:
    • Milestone is set
    • PR's name and description are correct and up-to-date
    • All temporary labels are removed

@krida2000 krida2000 added enhancement Improvement of existing features or bugfix k::UI/UX UI (user interface) and UX (user experience) changes labels Dec 26, 2023
@krida2000 krida2000 added this to the 0.1.0-alpha.12 milestone Dec 26, 2023
@krida2000 krida2000 self-assigned this Dec 26, 2023
Copy link
Contributor Author

@krida2000 krida2000 Dec 26, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@SleepySquash Нешел небольшой баг, если в чате много непрочитаных cообщений, то локальные сообщения не будут добавляться в пагинацию либо в хайв. Пока что не придумал как можно это пофиксить, но когда реализуется наша идея с хайвом с пробелами, эта проблема уйдет.

Видео
2023-12-26.12-30-50.mp4

Comment on lines +450 to +451
} else {
send.field.focus.requestFocus();
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@SleepySquash Тут каждый раз при отправке сообщения на телефоне терялся фокус и скрывалась клавитура. Мне кажется что намного удобней чтобы фокус оставался.

@krida2000 krida2000 marked this pull request as ready for review December 26, 2023 10:58
Comment on lines +1059 to +1065
/// 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);

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Во всём этом меня смущает только одна вещь - если тут механизм забарахлит и по какой-то причине не будет добавлено сообщение, которое по факту будет последним, то мы банально заблокируем чат в старом состоянии без возможности это сообщение где-нибудь увидеть - счётчик снизу на "чаты" будет "1", по факту сообщение было добавлено, но не рисуется. Эта проблема, #691, иногда воспроизводится - висит последнее сообщение какое-либо, но в списке сообщений оно не рисуется. Помогает несколько рефрешей страницы и прокрутка вверх/вниз, напрягает - это уже неправильное поведение. Боюсь, с заменой lastItemа на хайв мы можем вовсе потерять тогда и отображение в списке чатов последнего айтема корректное.

Кстати, есть мысли, что и это, и #691 связаны с #777 - вероятно, события в чат могут прилетать, но игнорироваться, т.к. страница пагинации уже версию обновила на свежую?

Предлагаю решить эти два issue сначала, а потом merge'ить этот PR, с ним всё остальное LGTM.

@SleepySquash SleepySquash added this to the 0.1.0-alpha.14 milestone Apr 22, 2024
@SleepySquash SleepySquash modified the milestones: 0.1.0, 0.2.0, 0.1.3 Jun 27, 2024
@SleepySquash SleepySquash modified the milestones: 0.1.4, 0.2.0 Jul 10, 2024
@SleepySquash SleepySquash modified the milestones: 0.2.0, 0.3.0 Sep 3, 2024
@SleepySquash SleepySquash modified the milestones: 0.2.1, 0.3.0 Sep 12, 2024
@SleepySquash SleepySquash modified the milestones: 0.2.2, 0.3.0 Oct 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Improvement of existing features or bugfix k::UI/UX UI (user interface) and UX (user experience) changes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Posting local ChatMessage doesn't order Chat in the list up
2 participants