status-im / status-mobile

a free (libre) open source, mobile OS for Ethereum
https://status.app
Mozilla Public License 2.0
3.89k stars 985 forks source link

Profile status updates #11137

Closed errorists closed 3 years ago

errorists commented 4 years ago

https://github.com/status-im/status/issues/1

Feature Issue

User Story

As a user I want to publish updates to my profile to share my current activity, my thoughts or action. I want to be able to read status updates of others on the network. I want to decide whose updates I'm interested and have those available in a single location to track and follow.

Outside of scope I want to have some validation that my updates are read, that others find my updates relevant and interesting and I'm growing an audience. I want to have more granular control over who's able to read my updates. I want to enable transactions to either paywall my activity or allow some interaction like say crowd funding. I want to mention other contacts so they are pinged with a notification

Description

👉 Figma Designs

Frame 164

The scope of this feature is to introduce posting status updates to your profile. A status update is a message like any other in a chat, which you publish to your public profile topic. A status profile is made up of a chronological order of updates, that can be viewed by anyone. Only you can post updates to your profile. Your updates shouldn't be viewed by others outside of your profile meaning if I were to try and join this chat #topic in the Status client like a regular public chat, it would return a public chat instance and not your profile messages.

Frame 166

You can view status updates of other profiles by visiting them from chat or contacts list. Adding another profile as a contact will subscribe to their status updates. All subsequent updates they post will be shared with you in a single location, a cumulative timeline showing all updates of your contacts, for familiarity referred to as 'twitter like ux'

Frame 168

To keep things simple for start, we should place those limitations:

Acceptance Criteria

The feature is implemented in separate digestible parts that we see as easy to work with. We agreed to split the timelines away from the rest of initial work due to their complexity and how they can be isolated.

Notes

There is an alternative design that forgoes the timeline concept in favour of a story like interface here. I created it so that we can have something to fall back on if we deem the timeline not feasible or otherwise the worse approach

For detailed specs on how this can be implemented I would defer to @flexsurfer and @cammellos

thanks!

errorists commented 4 years ago

Posting a link to updated designs, with changes mostly to the appearance of status updates: I removed the chat bubble ornamentation since it's the wrong format for the job: it's no longer a chat, rather a microblog and chat bubbles forced us into an inverted scroll direction which isn't suitable for the chronological timeline format. Otherwise I feel like it's ready for review and us choosing on the approach 🅰️ - 🅱️

Frame 18
cyanlemons commented 4 years ago

Looks very nice overall!

I definitely prefer the microblog format over the chat bubbles. As for suggestions, in right-most screen in this comment, it intuitively feels a bit off to repeat carmen.eth 0x0276... twice while only displaying the profile picture once. I would say I generally prefer the Discord way of solving this problem. They either merge the messages together, all under a single instance of the username and profile picture, or it gets split up and they repeat the username & profile picture.

Also, if it's the same person, and the updates were sent in quick succession (in this case it's 59s and 1 minute), then there should probably only be one timestamp.

flexsurfer commented 3 years ago

https://github.com/status-im/status-react/pull/11341