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

✍️ Typing indicators #9248

Closed
5 tasks done
nickvergessen opened this issue Apr 4, 2023 · 6 comments
Closed
5 tasks done

✍️ Typing indicators #9248

nickvergessen opened this issue Apr 4, 2023 · 6 comments

Comments

@nickvergessen
Copy link
Member

nickvergessen commented Apr 4, 2023

@nickvergessen nickvergessen added this to the 💙 Next Major (27) milestone Apr 4, 2023
@github-project-automation github-project-automation bot moved this to 🧭 Planning evaluation (don't pick) in 💬 Talk team Apr 4, 2023
@nickvergessen nickvergessen moved this from 🧭 Planning evaluation (don't pick) to 🆕 Next Major Changelog in 💬 Talk team Apr 4, 2023
@nickvergessen
Copy link
Member Author

nickvergessen commented Apr 5, 2023

Draft

  • Account-wide setting:
    • Similar to the read-status setting a account wide setting is added that enables the sending and receiving of those messages. So a user can only see the typing indicator, when they are also sharing their own typing status.
    • Setting is stored in oc_preferences like the read-status but not copied to conversation level as it's not needed for the technical side
    • The user's setting is populated as capability setting
  • UI:
    • There should be a single line on top of the input field X is typing …
    • Maybe with avatars (depends on the looks of it)
    • Showing up to 3? user names
    • If more users are typing we show X users are typing
  • Technology:
    • To not overload the PHP server with requests we will communicate this information as signaling messages
    • Internal signaling server support is optional
    • The clients/frontend send a signaling message every X seconds when their chat input is non-empty
    • Receiving clients expire the information after X seconds or when receiving a signaling message that the other side stopped

Open questions

  • Is it on or off for guests (they are currently ignored by the read-status)?
  • Can guests change it?

@nickvergessen
Copy link
Member Author

Regarding the questions:

  • Jan: If it's not a big performance concern I would say yes to both. Cause then guests have a similarly nice experience as people with accounts
  • Me: It's more like they don't have a settings page (yet), so either the option is very visible or it's quite some extra efforts (but might be worth it anyway so they can see the keyboard shortcuts, etc)

@jancborchardt
Copy link
Member

First mockups:

  • The line is shown inbetween the last message and the input field, not shifting any messages above (in case people stop typing)
  • Includes avatar(s) and a line in --color-text-maxcontrast, with the name in bold
  • Single person indicator centers the small avatar horizontally with the bigger avatars in the chat (maybe right-align is also fine). Text is "Name is typing"
  • Multiple people are simply shown comma-separated and with the overlapped avatars (needs a component at some point), up until 3 people like: "Marco and Nimisha are typing"
  • For more than 3 people, only 3 keep showing as avatars and full name (could be either the ones who have most recently typed or have started typing first, whatever is more performant), and ends with "and X others are typing" like "Nimisha, Marco, Joas and 3 others are typing"
One person is typing More than 3 people are typing
Typing indicator 1 person Typing indicator multiple people

@jancborchardt jancborchardt self-assigned this Apr 6, 2023
@jancborchardt jancborchardt moved this to 📐 Design phase in 🖍 Design team Apr 6, 2023
@jancborchardt jancborchardt changed the title "User X is typing" indicator Typing indicators Apr 6, 2023
@nickvergessen
Copy link
Member Author

Just for the record, Nextcloud still does not have the pattern of a "First name" and extracting it from the available user display name does not work for certain languages. Would it be okay to show the full names, or do we want to ignore the concerns from users of those languages (we have the same issue in the left sidebar already)

@jancborchardt
Copy link
Member

@nickvergessen of course – sorry I forgot about that. Showing full names is fine, and indeed what we should do to be internationally compatible.

@jancborchardt jancborchardt moved this from 📐 Design phase to 🏗️ At engineering in 🖍 Design team Apr 19, 2023
@nickvergessen
Copy link
Member Author

Closing the meta issue as the most tasks are completed.

@github-project-automation github-project-automation bot moved this from 🆕 Next Major Changelog to ☑️ Done in 💬 Talk team May 12, 2023
@github-project-automation github-project-automation bot moved this from 🏗️ At engineering to 🎉 Done in 🖍 Design team May 12, 2023
@nickvergessen nickvergessen moved this from ☑️ Done to 🆕 Next Major Changelog in 💬 Talk team May 12, 2023
@AndyScherzinger AndyScherzinger changed the title Typing indicators ✍️ Typing indicators May 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Archived in project
Development

No branches or pull requests

2 participants