Title. Basically the first press seems to do nothing but the second press actually subscribes. Why is this?
So… I’m not crazy! I’m not the only one!
Pretty sure this is an issue with Lemmy in general and not Jerboa. This happens on desktop, but weirdly not with all instances.
I think it does send the request the first time you click, but it takes a while to get a response from another server. Try it with some communities that are local to your server and you’ll notice it’s not so much an issue. I’m not a Dev and not am authority on the topic, but I think it puts your request into a queue, this helps make sure that your request makes it to the requested server in the case that one of those servers is temporarily down for maintenance or updates.
What I think needs to happen is just to provide a visual response to indicate that your request is sent and awaiting a response, which doesn’t usually happen until you click it a second time.
sometimes it also happen on the website (at least for me) so I don’t think it’s some jerboa bug, also note that this app is not even in beta at the moment, just give it some time.
This happens to me on lemmy.world as well, not using the app, curious that your move fixed it though. I think it might be a general lemmy issue rather than instance specific
Same.
I could be wrong but I think the first click works, there’s just no loading indicator, so then you click a second time because it’s unclear if anything is happening, and then shortly afterwards the successful response from the first click comes back and it just looks like the second click did something.
These seems so simple but could be a manageable fix if it is that straightforward
The simplest standard fix is to just immediately start a loading spinner that disables the button until the first request comes back or times out, then at least the user knows that something is happening. Some sites use optimistic updating though where they just assume the request will be successful, benefit being that the change happens as soon as the user clicks the button but the downside is that it may change later if the request happens to error out for some reason.