-
Notifications
You must be signed in to change notification settings - Fork 452
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
✔️✔️ Read status for chat messages #4231
Conversation
aad337c
to
cc07bf6
Compare
How do we want to handle the status? Pre-thought
CurrentWe store the "last read message id" per attendee in a conversation. Current "message states"
Original proposalThe proposal was:
ThoughtsOne-to-oneFor one-to-one chats this basically means (pseudo queries): SELECT last_read_message FROM oc_talk_attendees WHERE room_id = X AND actor_type = 'users' AND actor_id != YOU; GroupsFor a group chat the question is:
Telegram e.g. uses double checkmarks if someone read it, Whatsapp uses blue checkmarks when everyone read it, but it has a list of user->time to check individually who read it. We pick SELECT MIN(last_read_message) FROM oc_talk_attendees WHERE room_id = X AND actor_type = 'users' AND actor_id != YOU GROUP BY room_id; If the result is
|
Technical question: How do we update the read status. Responding to the long polling request doesn't sound like a good idea, because that will make spam requests all the time when you write something in a busy chat, but if we just add it as a header on all those requests, it means the read status could be delayed in updating by <= 30 seconds. Similar question applies to "other conversations". If we should show the read status in the conversation list, I would query the info there and just udpate it every 30seconds. It's also in line with current scenarios for a reply there, so that sounds good? |
Result of coworking with @nickvergessen on this :) |
cc07bf6
to
8983472
Compare
Stage 1 ready for review. UI will be polished by @ma12-co in a follow up. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Beautiful UI by @ma12-co
🤣
1a96849
to
314a8d2
Compare
Had forgotten to do the fix ups. done now. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See comments on the code. Haven't tested so far.
Signed-off-by: Joas Schilling <coding@schilljs.com>
Signed-off-by: Joas Schilling <coding@schilljs.com>
…ry it easier later on Signed-off-by: Joas Schilling <coding@schilljs.com>
… the conversation list Signed-off-by: Joas Schilling <coding@schilljs.com>
Signed-off-by: Joas Schilling <coding@schilljs.com>
Signed-off-by: Joas Schilling <coding@schilljs.com>
Signed-off-by: Joas Schilling <coding@schilljs.com>
Signed-off-by: Joas Schilling <coding@schilljs.com>
314a8d2
to
1e31077
Compare
UX note: while testing this I intuitively went to the personal settings, didn't think of going to the talk specific cog icon @ma12-co |
Now using dispatch to properly trigger the action. Added disabled state and notification. Signed-off-by: Vincent Petry <vincent@nextcloud.com>
What was the decision ? Leaving the current logic as is ? During a call, I found it interesting that it makes it possible to see who doesn't have the chat panel open. Maybe in the future we could always collapse the chat panel (with localstorage preference) and only open it when there's a new message. Or pop a notification for the message to prompt people to open it. Or something. |
Another remark: the read notification applies to everyone, not only people in the call. Not sure if someone might expect to get a double mark as soon as people within the call read it, minus external ones... Something to discuss separately I guess. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fine to merge considering that UX will be worked on after that 👍
Yeah the "on every chat request" which is a max of 30s is good enough for now.
You can't see who read it. Just if everyone read it (in stage 1 at least)
It applies to all users (not guests) everything else would be totally unexpected. |
raised #4738 for the UX bits |
@marcoambrosini @nickvergessen is there plans to pursue the development of step 2 (providing details when people read messages) ? |
Not at the moment |
Fix #1012