status-im / specs

Specifications for Status clients.
https://specs.status.im/
MIT License
14 stars 14 forks source link

Mentions in chat #67

Open rachelhamlin opened 4 years ago

rachelhamlin commented 4 years ago

Mentions Specs v2

User Stories

As a (sending) user, I want to get the attention of certain individuals within group or public chats.

As a (receiving) user, I want to notice when someone calls me out or responds to me directly in a group or public chat.

Iterations

MVP: Discord style mentions: Visual distinction only.

v1: Mentions & replies via PN for Android: Visual distinction, scroll-to-position when opening from PN. <— Heaviest/most variable and research-intensive scope of work.

v2: In-app notification center for mentions & replies, scroll-to-position when tapped.

MVP: Discord style mentions: Visual distinction only

(Design WIP)

Work required

Questions & Constraints

v1: Add push notifications: Visual distinction + PN on Android + scroll-to-position

(Design WIP)

Work required

Questions & Constraints

v2: In-app notification center: Visual distinction + PN on Android + in-app notification center + scroll-to-position

(Design WIP)

Questions & Constraints

Work required

Future versions

rachelhamlin commented 4 years ago

cc @cammellos @yenda @errorists for review

cammellos commented 4 years ago

Looks ok, to me, I would have a more detailed issue for the first iteration, as there's are still a few things to iron out, for example

As a (sending) user, I type the @ symbol to pull up the list of users in a chat—both random names and ENS—and either type or select the person I want to mention.

I guess in a one-to-one is disabled. In a private group chat is the list of users who joined that group chat, in a public chat is not so clear, as it would be anyone who posted in that chat, as there's no concept of membership. That can be a fairly large number, so for the sake of simplicity, should we cap it to the last x users who posted?

errorists commented 4 years ago

After inserting the @ character, the list should populate with a capped, say 16, number of people you mentioned most recently, ordered from most recent on top. If there's no one yet, then it's empty. As you start typing, only then it would try and match your query with anyone present in the chat.

I'm detailing that in the design now, I find that will be more helpful that a list of everyone present in a chat.

oskarth commented 4 years ago

Thanks! From a (protocol) spec POV, I believe it'l look something like:

Possibly privacy considerations too, if you mention with a private name and it is in a public channel (e.g.)