feat(web-core): implement unread counters and new-messages divider
Some checks failed
CI / test (push) Failing after 19s

backend:

- add unread_count to ChatRead serialization

- compute unread_count per chat using message_receipts and hidden messages

web:

- add unread badges in chat list

- track unread boundary per chat in store

- show 'New messages' divider in message list

- update realtime flow to increment/clear unread on incoming events
This commit is contained in:
2026-03-08 01:43:27 +03:00
parent 7f15edcb4e
commit 4ffbfc1e83
8 changed files with 88 additions and 6 deletions

View File

@@ -26,6 +26,8 @@ async def serialize_chat_for_user(db: AsyncSession, *, user_id: int, chat: Chat)
if counterpart:
display_title = counterpart.name or counterpart.username
unread_count = await repository.get_unread_count_for_chat(db, chat_id=chat.id, user_id=user_id)
return ChatRead.model_validate(
{
"id": chat.id,
@@ -36,6 +38,7 @@ async def serialize_chat_for_user(db: AsyncSession, *, user_id: int, chat: Chat)
"description": chat.description,
"is_public": chat.is_public,
"is_saved": chat.is_saved,
"unread_count": unread_count,
"pinned_message_id": chat.pinned_message_id,
"created_at": chat.created_at,
}