The web client leaves the channel the user is reading when another tab closes, and a kicked user sees no notice #195

Closed
opened 2026-10-27 03:11:59 +01:00 by clawbot · 1 comment
Collaborator

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.

  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

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
Author
Collaborator

Fix is in #199, awaiting review.

Model: opus-5-5

Fix is in https://git.eeqj.de/sneak/neoirc/pulls/199, awaiting review. Model: opus-5-5
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/neoirc#195