GeopJr / Tuba

Browse the Fediverse
https://tuba.geopjr.dev/
GNU General Public License v3.0
542 stars 59 forks source link

[Request]: Compose button on the conversation view #612

Open Nico7as opened 11 months ago

Nico7as commented 11 months ago

Describe the request

Hi Please note that I use the french version of Tuba, so I might refer to some functions or buttons with an aproximative name.

Please add a "compose/new message" button on the conversation view. and then make the new message "direct" or "private" by default.

I would be very convinient to use Tuba for direct messaging.

Implementation Details

henryrov commented 10 months ago

I think this feature makes sense, and it's simple enough to implement. I opened #619 as a draft implementation, if anyone wants to go over it.

GeopJr commented 10 months ago

I'm not against this but also not really sure if it's that useful. Conversations are (as already mentioned in the OP) just another visibility option so the current open view doesn't really matter where, for example, on platforms like Twitter, the "Direct Messages" view is its own thing, that can only be accessed there and can only be used for chatting. On fedi instead, you can have 'direct' visibility under any post, including public ones without the author of it being able to even see the message. Those also end up in the Conversations view.

What I'm trying to get at is that the question is not about whether the conversation view should have the button but whether all (or at least most) views should have it.

FWIW, our designers were clear that the floating button is only meant for the "Home" view. (That is not set in stone of course).

Also quick reminder, the original issue is only about creating new conversations, the button would not be used for replying. Click the reply button under the conversation you are replying to instead, if that's what you are trying to do.

nekohayo commented 6 months ago

[…] the question is not about whether the conversation view should have the button but whether all (or at least most) views should have it.

FWIW, our designers were clear that the floating button is only meant for the "Home" view. (That is not set in stone of course).

In case this is useful, I will say that in my personal experience, I have often (every couple of days) found myself frustrated by not being able to compose a new independent toot without exiting the current view (thread, notifications, etc.). It is annoying because it is artificially limiting me into a single-tasking mode. I am then:

Unless you want to implement a tabbed/multi-columns UI (#118) for multitasking, that is... but even then, the ability to spawn the non-reply composer from anywhere would still be useful.

nekohayo commented 6 months ago

…also to give an idea of how common of a situation this turns out to be for me: I frequently have to open browser tabs in addition to Tuba to be able to post something at the same time I am looking at something. That is me having to work around Tuba's artificial "single-tasking" limitation.

GeopJr commented 6 months ago

You are right. I think we just missed that :/

You can still open the composer using the keybinds from any view - until we figure out the best way to add it to the UI - (CtrlT, CtrlN)

As for the context, (you are already aware of it but I'll mention it for anyone reading this), the new composer has the reply to post on it. I'd opt-in to make it non-modal but AFAIK the new libadwaita dialogs can only be modals.

Unless you want to implement a tabbed/multi-columns UI (#118) for multitasking, that is... but even then, the ability to spawn the non-reply composer from anywhere would still be useful.

That is me having to work around Tuba's artificial "single-tasking" limitation.

A multi columns UI would probably lead to a worse experience for everyone for a feature only a few will use. For example, one of the many issues, how would timeline columns be handled when the window resizes so they don't fit? Destroy them? and then when it gets resized back the user has lost their timeline position. Keep them in memory? and use excessive amounts of memory and bandwidth (for websockets) for no reason?

The best middle ground I can think of is popping timelines into their own windows. That way the user can close them when they don't need them anymore instead of trying to guess what the user wants through window size.

I don't think a floating button in every single view is the solution to this. A headerbar menu item ("New Post")? A headerbar button?