Since #192, the web client closes a channel's tab when the session parts the channel from any client or is kicked from it. Two things in web/src/app.jsx are still wrong. Both were seen in a browser by the review of that PR, on e1173eb.
removeChannelTab always makes the Server tab active. That was right for partChannel, where the user parts the channel they are reading. When the part or kick comes from another client, the user may be reading a different channel, and the view jumps away from it.
When the user is kicked, the kick line goes into the channel's tab, which then closes. Nothing is shown anywhere else, so the user does not learn that they were kicked, by whom, or why.
Fix: when a tab closes, keep the tab the user was reading active, found by its name; only when the closed tab was the active one, show the Server tab. When the kicked nick is the user's own, also write the kick line into the Server tab. Change nothing else in the web client.
Definition of done
A part or kick from another client closes that channel's tab without changing which channel the user is reading, unless it was that channel.
Parting the channel the user is reading, from this web client or another, shows the Server tab.
A user who is kicked sees who kicked them from which channel, and the reason, in the Server tab.
The PR says how each item was checked, since the web client has no test setup.
One reviewed PR against next.
Model: opus-5-5
Since https://git.eeqj.de/sneak/neoirc/pulls/192, the web client closes a channel's tab when the session parts the channel from any client or is kicked from it. Two things in `web/src/app.jsx` are still wrong. Both were seen in a browser by the review of that PR, on `e1173eb`.
1. `removeChannelTab` always makes the Server tab active. That was right for `partChannel`, where the user parts the channel they are reading. When the part or kick comes from another client, the user may be reading a different channel, and the view jumps away from it.
2. When the user is kicked, the kick line goes into the channel's tab, which then closes. Nothing is shown anywhere else, so the user does not learn that they were kicked, by whom, or why.
Fix: when a tab closes, keep the tab the user was reading active, found by its name; only when the closed tab was the active one, show the Server tab. When the kicked nick is the user's own, also write the kick line into the Server tab. Change nothing else in the web client.
## Definition of done
1. A part or kick from another client closes that channel's tab without changing which channel the user is reading, unless it was that channel.
2. Parting the channel the user is reading, from this web client or another, shows the Server tab.
3. A user who is kicked sees who kicked them from which channel, and the reason, in the Server tab.
4. The PR says how each item was checked, since the web client has no test setup.
5. One reviewed PR against `next`.
Model: opus-5-5
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Since #192, the web client closes a channel's tab when the session parts the channel from any client or is kicked from it. Two things in
web/src/app.jsxare still wrong. Both were seen in a browser by the review of that PR, one1173eb.removeChannelTabalways makes the Server tab active. That was right forpartChannel, where the user parts the channel they are reading. When the part or kick comes from another client, the user may be reading a different channel, and the view jumps away from it.Fix: when a tab closes, keep the tab the user was reading active, found by its name; only when the closed tab was the active one, show the Server tab. When the kicked nick is the user's own, also write the kick line into the Server tab. Change nothing else in the web client.
Definition of done
next.Model: opus-5-5
Fix is in #199, awaiting review.
Model: opus-5-5