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

Pinned messages in chats #11699

Closed
cammellos opened this issue Jan 29, 2021 · 7 comments · Fixed by #11952
Closed

Pinned messages in chats #11699

cammellos opened this issue Jan 29, 2021 · 7 comments · Fixed by #11952
Assignees
Labels
feature feature requests
Milestone

Comments

@cammellos
Copy link
Member

cammellos commented Jan 29, 2021

As a user
I want to be able to pin messages
So I can welcome new joiners with important information
So I can keep important messages visible

Description

We want to allow users in a group chat to pin messages.
This should work for private group chats, one-to-ones and community chats.
Public chats are excluded.

The way it works is that pinned messages will be ordered just like normal messages, but will have a different visual
indicator (i.e color and a label) https://www.figma.com/file/aS1ct66VQ6V0cio7vSqS8UoG/Chat?node-id=18553%3A60460

For each chat type, there will be an entry point to see the pinned messages:

For one to ones, is under the profile of a user (NOTE: profile always shows the pinned message between you and the other user in a one to one chat, regardless of where you access the profile from)

For private group chats is under group info: https://www.figma.com/file/aS1ct66VQ6V0cio7vSqS8UoG/Chat?node-id=6942%3A35457

For communities chat is under the chat details screen (not existing at the moment): https://www.figma.com/file/aS1ct66VQ6V0cio7vSqS8UoG/Chat?node-id=18729%3A63242

The way we display pinned messages once clicked is the same:

https://www.figma.com/file/aS1ct66VQ6V0cio7vSqS8UoG/Chat?node-id=6945%3A0

Acceptance criteria

  • Messages can be pinned in any relevant chat according to the rules below
  • Messages can be unpinned in any relevant chat according to the rules below
  • I can see the pinned messages in each subsection

Rules

In a private group chat, any admin can pin a message.
In a one-to-one chat any participant can pin a message.
In a community chat, any admin can pin a message.

Implementation

Feel free to ping me if you'd like to discuss potential protocol changes.

@cammellos cammellos added the feature feature requests label Jan 29, 2021
@cammellos cammellos added this to the Release 1.12 milestone Jan 29, 2021
@cammellos
Copy link
Member Author

@gravityblast @bitgamma @guylouis clarified with @errorists and left a note in the task:
From a user profile, you always see the message pinned your one to one chat with them, regardless of where you access it from.
Left a note in the task as well.

@guylouis
Copy link
Contributor

guylouis commented Feb 9, 2021

@errorists @cammellos
rules for pining are clear. What about unpinning though ? which of the two following logic are we doing:
i/ an admin (group chat, community) or participant (1-1 chat) can only unpin his own pinned messages
ii/ an admin (group chat, community) or participant (1-1 chat) can unpin pinned messages from other admin or the other participant (1-1 chat)

@errorists
Copy link
Contributor

ii/ an admin (group chat, community) or participant (1-1 chat) can unpin pinned messages from other admin or the other participant (1-1 chat)

ii is the correct way to go considering i may end up with orphaned messages as the person who pinned their message may no longer be in the chat to remove them

@cammellos cammellos modified the milestones: Release 1.12, Release 1.13 Feb 23, 2021
@iurimatias
Copy link
Member

adding link status-im/status#11

@guylouis
Copy link
Contributor

@gravityblast
I guess it would be helpful to mention here the go issue/pr ongoing for this feature

@gravityblast
Copy link
Member

yes it's this one:

status-im/status-go#2180

@nahuhh
Copy link

nahuhh commented Jun 7, 2021

My suggestions follow:

Need to add a "Note to self" (similar to signal) or a "saved" (telegram). This would act as a place to both:

  1. Chat with yourself and
  2. Forward messages to in order to save them.

Both telegram and signal do the same thing, just using a different name (Note to self vs saved).

Communities and Group Chats:

  1. pinned and bookmarked messages should be stickied to the top of the chat as a header for all users. 1.1 Stacked if more than one pin.
  2. ability to set a pinned message without typing it in chat. "Create new pin" option. Good for help desks, parents etc.
  3. ability to forward a message
  4. ability to save a message (automate forwarding to your "Note to self" aka "saved" chat)

1+2. Pinned and bookmarked messages should be accessible from the group / community chat info page.

3+4. Forwarded and saved messages should be stored in your "saved" chat. They should link back their position in the originating chat (if it still exist). If the original message or chat does not exist, the saved message should not be affected.

Pin and save control:

  1. only creator & admins can pin
  2. creator can remove any pin
  3. admins can only remove their own pins
  4. regular users are not offered 📌 , but "bookmark" 🔖 instead.
  5. admins and creators are also offered bookmark.
    Bookmark acts the same as pin but only shows for you.
  6. anyone can save / forward.

1:1 Chats

  1. pinned messages with should be stickied to the top of the chat as a header for both parties. 1.1 should explain to user that a pin will appear for both parties and offer save and bookmark.
  2. ability to set a pinned message without typing it in chat. "Create new pin" option. Good for help desks, parents etc.

Remove reply from the tooltip and replace with swipe to reply.

Completing this requires

  • ability to edit and delete messages
  • ability to forward messages
  • local (encrypted) backups
  • a (solo) chat to forward [save] messages to
  • pins should disrespect the "restore" timeframe / delete timeframe. I'm not sure if message history is ever restored p2p (?) Or server only?
  1. Users who have nodes disabled should restore chat history from active participants.
    1.1 option to enable / disabke "seed history to groups and communities" options for timeframes and text/text+media
  2. Pins should always be seeded p2p.

Apologies for the book 😅

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature feature requests
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants