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

Messages might stuck at last, not loading the rest, despite Chat.lastItem changed #691

Closed
SleepySquash opened this issue Nov 1, 2023 · 2 comments · Fixed by #990
Closed
Assignees
Labels
bug Bugs and incorrectness problems k::UI/UX UI (user interface) and UX (user experience) changes

Comments

@SleepySquash
Copy link
Contributor

SleepySquash commented Nov 1, 2023

Summary

Чат не будет запрашивать список сообщений, если последнее сообщение в данном чате = Chat.lastItem. Но по какой-то причине это состояние может зависнуть, даже когда Chat.lastItem уже другой, более новый. При это в списке недавних чатов последнее сообщение рисуется новое, счётчик сообщений обновляется. Но сообщения после последнего сохранённого в хайве не загружаются.

Steps to reproduce

  1. ??? - пользоваться приложением.

What is the current bug behavior?

Сообщения могут не прогружаться, даже когда последнее не является Chat.lastItemом.

What is the expected correct behavior?

Сообщения корректно прогружаются.

Possible fixes

Возможно, есть проблемы в определении isLast HiveGraphQl провайдера.

UPD. В обработке события EventChatItemPosted происходит просто put айтема, т.е. он никак не обновляет список items пагинации. А в HiveGraphQlPageProvider есть такие строчки в методе around:

if (cached != null &&
    (cached.edges.length >= count || !cached.info.hasNext)) {
  return cached;
}

Т.е. если cached.edges.length >= count, то никакого запроса на бэкэнд сделано не будет. Соответственно и сообщения не будут подгружены.

@SleepySquash SleepySquash added bug Bugs and incorrectness problems k::UI/UX UI (user interface) and UX (user experience) changes labels Nov 1, 2023
@SleepySquash SleepySquash added this to the 0.1.0-alpha.11 milestone Nov 1, 2023
@SleepySquash SleepySquash self-assigned this Nov 1, 2023
@SleepySquash SleepySquash moved this to Bugs in Roadmap Nov 1, 2023
@SleepySquash SleepySquash moved this from Bugs to First priority in Roadmap Nov 1, 2023
@SleepySquash SleepySquash moved this from First priority to Bugs in Roadmap Nov 22, 2023
@SleepySquash
Copy link
Contributor Author

Дополнительно: было бы правильно ввести какую-то защиту от подобного лока. Скажем, если приходит обновление lastItemа, то убеждаться каким-нибудь образом, что в списке сообщений мы этот айтем увидим.

@SleepySquash SleepySquash moved this from Bugs to First priority in Roadmap Nov 28, 2023
@krida2000 krida2000 assigned krida2000 and unassigned SleepySquash Nov 30, 2023
@krida2000
Copy link
Contributor

@SleepySquash По этой проблеме нужно видео как выглядик когда сообщения не прогружаются, потому-что если hasNext равно true, сообщения будут загружаться при прокрутке, но не будут добавляться при EventChatItemPosted. В противном случае, если hasNext равно false, сообщения всегда будут добавляться в список сообщений при EventChatItemPosted, возможно проблема устарела.

Хотелось бы получить какое-то подтверждение что проблема еще актуальна, при тестировани никаких проблем обнаружить не получилось.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Bugs and incorrectness problems k::UI/UX UI (user interface) and UX (user experience) changes
Projects
Status: Done
2 participants