danirus / django-comments-xtd

A pluggable Django comments application with thread support, follow-up notifications, mail confirmation, like/dislike flags, moderation, a ReactJS plugin and Bootstrap 5.3.
https://django-comments-xtd.readthedocs.io
BSD 2-Clause "Simplified" License
598 stars 160 forks source link

Threaded comments, in mobile devices. #99

Open sanastasiou opened 6 years ago

sanastasiou commented 6 years ago

Hi @danirus ,

I have tried using and styling the nested comments, even with minimal nesting level ( 1 ).

The js plugin is using "media-body" class which hides scrolling by default. Even after fixing this, I could add horizontal scrolling per "frist level comment" That "works" but the overall experience is sub-optimal. I think the best way to tackle with this issue , is to have youtube like comments. i.e. one reply per original comment possible, and all replies nested in exactly 1 level. That would work in any kind of device, as the max - width required would be fixed.

I could help you with that if you want. I also fixed a couple of bugs in the package, regarding wrong datetime reported ( -2 hours ) and links to users, who do not have user_url defined in their models.

sanastasiou commented 6 years ago

Is it maybe possible to flat all levels above 1 to just one? But still allow for replies? This is how e.g. facebook and youtube work. I tried to find out the indendation levels in the rendering part of the plugin but I was not successful.

shashaBot commented 6 years ago

@sanastasiou Threaded comments with deep nesting have their own appeal, which while can be replaced by youtube/facebook like comments but lack the immediately apparent conversation flow in a discussion. For this reason I would suggest we look for some other way to tackle the issue instead of getting rid of deep-nesting.

A solution can be derived from reddit's approach to this. What they do is when the nesting level is beyond a certain level (10, i think), they show a "continue this thread" link which takes you to a a page with all other threads removed and shows the comment tree with the parent comment displayed as a level 0 (top-level) comment.

sanastasiou commented 6 years ago

@shashaBot We don't have to get rid of anything, but making it optional would be better. In mobile devices using relatively large comments, is is almost impossible to display even 2 levels of nesting correctly, let alone ten. I have tried extensively using css tricks to alleviate the issue but the end result was really not user friendly. This is the main reason, I think, why fb, youtube etc. prefer this other format. Even opening another page wouldn't really help in mobile device with limited real estate but your point is valid nevertheless.

ashwani99 commented 4 years ago

@shashaBot You can already do that by setting COMMENTS_XTD_MAX_THREAD_LEVEL to 1 and replying to parent comment when thread level is maxed out.