I had a lot of fun making this with Vue 3.
I had some difficulties though:
-
I couldn't make the 'reply to reply' work. You can comment in the main flow and reply to a 1st order comment, but not reply to a reply, if that makes sense. I guess it's just a algorithm problem though, I got confused with these (feel free to give me your feedback).
-
I couldn't animate the new comment component so that it doesn't pop up before (under) the other ones have moved down.
-
I couldn't animate the new comment component when another comment is removed from the DOM. It does work with other comments (thanks to a Vue transition-group). It tried to wrap it all into yet another transition-group but it didn't work.