damus icon indicating copy to clipboard operation
damus copied to clipboard

Conversation threads are difficult to follow

Open dmnyc opened this issue 2 years ago • 29 comments

what happens Threads with multiple replies are extremely difficult to follow. Scrolling does not load additional messages, and replies are invisible to the user unless the user taps to view them.

If there are multiple replies to a single reply, they create separate reply chains that one must go back and continue tapping again on each deeeper reply.

what I think should happen If there are a small number of replies to a message, they should be automatically visible when scrolling down, or refresh once the user reaches the bottom of the screen. A "view replies" button chould be added beneath replies if necessary to improve conversaton flow.

The video below shows the difficulty of viewing just a single conversation involving 2 users that takes 15 taps to see all of the messages. https://nostr.build/p/nb8281.mp4

dmnyc avatar May 14 '23 01:05 dmnyc

This is great feedback @dmnyc 🙏

Bringing up with team

alltheseas avatar May 14 '23 03:05 alltheseas

Thanks. The reference note is:

note1y30778c7pxf7jcct2dykl7gzq7f5p5alj5cqdl686ku4wtl0njwqts6xy3

Reply with the most reply depth:

note169hacwg8q5wc3j7757wd2j69s5x6fqk8hk3ep0ykyftan0dxgrmqtuc35e

dmnyc avatar May 14 '23 03:05 dmnyc

@dmnyc what do you think

https://www.figma.com/proto/ORaT1T0Ywfbm0sIjwy5Rgq/Damus-iOS?type=design&node-id=0-1&viewport=262%2C-943%2C0.5&scaling=scale-down&starting-point-node-id=2594%3A25404&show-proto-sidebar=1

alltheseas avatar Jun 06 '23 14:06 alltheseas

Love this! 🔥

dmnyc avatar Jun 06 '23 15:06 dmnyc

@danieldaquino

alltheseas avatar Mar 12 '24 15:03 alltheseas

@danieldaquino

Thank you @alltheseas. @alltheseas, @jb55, should I add this to the new sprint?

danieldaquino avatar Mar 12 '24 17:03 danieldaquino

@dmnyc what do you think

https://www.figma.com/proto/ORaT1T0Ywfbm0sIjwy5Rgq/Damus-iOS?type=design&node-id=0-1&viewport=262%2C-943%2C0.5&scaling=scale-down&starting-point-node-id=2594%3A25404&show-proto-sidebar=1

I really don't like this nested thread thing that keeps indenting. people actually like that?

In the early versions of damus I had a view that flattened an entire thread into a chat view, where replies were simply quote replies like on telegram. I thought that was a great way to follow the conversation of an entire thread. People didn't like it because it was confusing when there was two view so I abandoned it, but I really don't see another way cleanly other than doing what twitter does by unrolling conversations and then you just keep scrolling to read all interactions.

I would like to have an agreed upon design before anyone starts working on this.

jb55 avatar Mar 13 '24 09:03 jb55

I agree, the best way to expose all notes in a conversation would be ideal. It's cumbersome and easy to lose track of replies to a post when you force the user to go back and tap on each individual reply to see further replies.

On Wed, Mar 13, 2024 at 5:26 AM William Casarin @.***> wrote:

@dmnyc https://github.com/dmnyc what do you think

https://www.figma.com/proto/ORaT1T0Ywfbm0sIjwy5Rgq/Damus-iOS?type=design&node-id=0-1&viewport=262%2C-943%2C0.5&scaling=scale-down&starting-point-node-id=2594%3A25404&show-proto-sidebar=1

I really don't like this nested thread thing that keeps indenting. people actually like that?

In the early versions of damus I had a view that flattened an entire thread into a chat view, where replies were simply quote replies like on telegram. I thought that was a great way to follow the conversation of an entire thread. People didn't like it because it was confusing when there was two view so I abandoned it, but I really don't see another way cleanly other than doing what twitter does by unrolling conversations and then you just keep scrolling to read all interactions.

I would like to have an agreed upon design before anyone starts working on this.

— Reply to this email directly, view it on GitHub https://github.com/damus-io/damus/issues/1126#issuecomment-1993909811, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA3YJQZ6CGHNGHI2SYA7DQLYYALWBAVCNFSM6AAAAAAYA2PLJGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJTHEYDSOBRGE . You are receiving this because you were mentioned.Message ID: @.***>

dmnyc avatar Mar 14 '24 05:03 dmnyc

Basically what I'm hoping to see is something like this thread where second level posts get shown, but there's also a "Show replies" link to expose lower-level posts.

https://x.com/pubkey_nyc/status/1772652812553367872 image

dmnyc avatar Mar 26 '24 16:03 dmnyc

Thank you for sharing the screenshot - I think this is what @jb55 had in mind when mentioning a preference for inline replies.

alltheseas avatar Mar 26 '24 16:03 alltheseas

Going through Rune's thread carries friction

https://damus.io/nevent1qqsxpvwll6rwka0xxrrg25ar977ya5wrt9j3t5af3d63p348fkavlyspvemhxue69uhkv6tvw3jhytnwdaehgu3wwa5kuef0dec82c33wsekwemrvsurgvmsdemkxafkwq68gcmnv4ekgvpjws6k57pjv9jkcurkw4ehjur4x45xkvpexg6ku6rpw4ck56nvx4nng0mzwfhkzerrv9ehg0t5wf6k2qg4waehxw309a5xjum59ehx7um5wghxcctwvsq3jamnwvaz7tms09exzmtfvshxv6tpw34xze3wvdhk6qg6waehxw309ahx7um5wgh8qmr9vf3ksctfdchx7un89utevlc8

alltheseas avatar Mar 30 '24 12:03 alltheseas

It's very difficult to navigate through.

dmnyc avatar Mar 30 '24 12:03 dmnyc

Should follow twitter approach - just scroll down. No need to tap to see replies.

cc @danieldaquino

@jb55 references chatroom, and produces mea culpa " not a designer "

alltheseas avatar May 20 '24 16:05 alltheseas

4ac3da76121eebcf794b7ac5e8b68bbebcdf88eb

alltheseas avatar May 20 '24 16:05 alltheseas

https://www.figma.com/design/ORaT1T0Ywfbm0sIjwy5Rgq/Damus-iOS?node-id=3197%3A26779&t=Z1uhyq3IAspA3xY7-1

alltheseas avatar May 22 '24 16:05 alltheseas

@jb55

The more i think about it i think there really should be two thread modes: one for reading a long chain of replies within a thread and one for when you first open a thread. I said this before above but just wanted to reiterate it.

For example, I’m having a long reply chain within a thread here:

https://damus.io/nevent1qqsgrsnflyauc2jsv0m4exfqf3zn2u58dx5tr6h004dc48fk44vxmucprfmhxue69uhkummnw3ezummjv9hxwetsd9kxctnyv4mqzxrhwden5te0wajkccm0d4jjumn0wd68ytnhd9hx2qgcwaen5te0d4hkucty9e4xydf49e3k7mf68qcrsvqpzpmhxue69uhkummnw3ezuamfdejsp8lrap

This is pretty much perfect ux for this scenario. I’m having a single subthreaded convo with a single individual, having the reply after reply laid out removes any other noise in the thread.

In the case where there aren’t many of these long reply chains or for small or new threads this is not the best ui, since you have to click around a lot.

I still think the simple heuristic is from timelines, open into threaded chat, but in notifications open up what we have today. Will experiment

@danieldaquino

What if we have the threaded chat view we have on the mockup, but then we can activate the “chain view” by long pressing a note, which will hide all other notes that are not part of the chain from root to that specific note?

@jb55 tg example

https://t.me/TelegramTips/249

@danieldaquino

Ahh I see

Yeah, similar to what I was thinking. The only differences between that and what I have in mind are:

  • Use long press or another interaction that is more obvious/visible
  • Collapse all other chat bubbles within the same view instead of opening a new page

image

maybe this is called branch vs tree view

a, b, c, d, e are messages (not people)

@jb55

my only concern is that most people will never find the long press

Can tipkit fix this?

@jb55

tipkit is a bandaid

@danieldaquino

Maybe some haptic or visual feedback that starts immediately and builds up over the course of a few seconds, to make users naturally discover it?

A bit how the “record voice message” feature works on Signal or WhatsApp

If you tap the microphone icon, it will give you a tip

@robagreda

Tap should work, is more natural.

@jb55

btw, I literally had it before in damus where tap would switch between chat and standard thread view. people were horribly confused.

maybe we can improve the ux on this so its less confusing

basically you would open a thread like normal, then tapping on the note again would bring you to the chat view. I don't think there are many apps that do this so it was a bit jarring for people

alltheseas avatar May 25 '24 18:05 alltheseas

Made a draft 85% similar to the Figma design: https://github.com/damus-io/damus/tree/%231126_option_1_v1

This should be enough to get us started with testing

danieldaquino avatar May 28 '24 02:05 danieldaquino

https://github.com/damus-io/damus/assets/24692108/ff5ee8a5-958b-4d01-bff0-b18d29d8fc0c

danieldaquino avatar May 28 '24 02:05 danieldaquino

starting to think we should use long press to reply,repost,like,zap in this view? otherwise the reply bar needs to be offset -y pixels, made smaller, and reduce the drop shadow like the design. getting there though. we should also reduce the border-radius, I very strongly dislike "bubbly" looks of things. in roberto's design the border radius was much smaller and more tolerable.

jb55 avatar May 28 '24 17:05 jb55

we should use long press to reply,repost,like,zap in this view

If we do this, there should be intuitive hints/tipkit/signal type guidance on this slightly hidden feature

alltheseas avatar May 28 '24 18:05 alltheseas

Its actually a pretty common interaction in imessage, so maybe its ok

imessage longpress

jb55 avatar May 28 '24 19:05 jb55

Also swipe to reply:

https://github.com/damus-io/damus/assets/45598/537c6bda-5eec-4ea1-9783-6bc9b226aff6

jb55 avatar May 28 '24 19:05 jb55

Its actually a pretty common interaction in imessage, so maybe its ok

Also swipe to reply:

Good points. Lets see the feedback in practice.

Also I just discovered you can double tap on an iMessage to open the reaction menu, and a reply option

alltheseas avatar May 28 '24 19:05 alltheseas

Also I just discovered you can double tap on an iMessage to open the reaction menu, and a reply option

I had no idea lmao

jb55 avatar May 28 '24 19:05 jb55

Could we add all three:

  1. swipe to reply,
  2. double tap to open reaction menu, with an option to reply,
  3. long hold to open reaction menu

alltheseas avatar May 28 '24 19:05 alltheseas

if we can save space without littering action buttons on every post that would be ideal

jb55 avatar May 28 '24 19:05 jb55

swipe to the left reveals the timestamp

alltheseas avatar May 28 '24 19:05 alltheseas

signal also does both of these swipe interactions

jb55 avatar May 28 '24 19:05 jb55

no double tap on signal. swipe right reveals a detailed message view. could this be useful real estate for nerds - e.g. JSON view?

image

alltheseas avatar May 28 '24 19:05 alltheseas

Thanks for the feedback everyone!

Updates today:

  • [x] Reduced action bar icons to only show items with non-zero activity
  • [x] Added (most) event actions to the context menu
  • [x] Fixed issue where posting a reply would not scroll down to the new post
  • [x] Made several small layout improvements as requested, as well as other layout issues
  • [x] Improved color schemes to match the Figma design more closely

Things left to do for improvement:

  • Add emoji reactions to the context view (I did research on this today, and unfortunately it does not work out of the box with SwiftUI, but I found a library that can help us do it, I will try to integrate it)
  • Improve looks when the selected event is not the first event on thread (i.e. chat bubbles are showing on top of selected event, it looks unnatural)
  • Add the sticky header for the main event
  • Implement swipe to reply
  • Double-tap to option reaction menu and reply
  • There is still a little padding issue with the reply quote view, depending on text contents
  • Other things if needed

New WIP branch: https://github.com/damus-io/damus/tree/%231126_option_1

Screenshots: screenshots threads

danieldaquino avatar Jun 03 '24 23:06 danieldaquino