slash command to update ignored rooms list#8983
Conversation
Based on matrix-org/matrix-js-sdk#2483 Doens't actually ignore anything yet though...
Yoric
left a comment
There was a problem hiding this comment.
I think that the syntax should be either
/ignore-invite
or
/ignore invites
Otherwise, it's going to be very confusing, since /ignore is used for ignoring users entirely.
Also, as you probably know, I cannot approve patches on matrix-react-sdk, so you'll have to find someone from that team to do it once you're ready!
| "Stops ignoring a user, showing their messages going forward": "Stops ignoring a user, showing their messages going forward", | ||
| "Unignored user": "Unignored user", | ||
| "You are no longer ignoring %(userId)s": "You are no longer ignoring %(userId)s", | ||
| "Ignored room": "Ignored room", |
There was a problem hiding this comment.
Note that we're not ignoring the room, only the invites from this room!
There was a problem hiding this comment.
...actually, you are right, we may be ignoring the room entirely. But to do so, the slash command needs to leave the room immediately, no?
| ); | ||
| } | ||
| const roomMatches = args.match(/^([!][^:]+:\S+)$/); | ||
| if (roomMatches) { |
There was a problem hiding this comment.
Our main usecase is ignoring the current room, so we should support a syntax such as
/ignore-invites room
(where room is an actual keyword) to ignore invites to the current room.
Feel free to improve that syntax :)
There was a problem hiding this comment.
But you can't write slash commands in a room in which you are holding an invite, you'd need to join the room to the ignore invites and then leave? That doesn't sound safe.
There was a problem hiding this comment.
Well, user feedback suggests that this is actually a common behavior:
- Get tricked into a room.
- Realize that you have been tricked.
- Decide never to be invited in this room again.
- ...but we don't have tools for that yet.
We definitely want to add the ability to ignore invites before joining the room, but we're planning to work on that as a later stage, as this will require deeper changes in the UI.
There was a problem hiding this comment.
But if you leave before you realise "oh maybe I should ignore future invites" then it'll be too late, you'll have to wait for a second invite, accept it, then finally you can ignore it.
There was a problem hiding this comment.
Absolutely.
Right now, we're trying to reach the following objectives:
- handle at least one common case with minimal UI, hoping to get to a stage where we can actually put it in the hands of power users for testing;
- lay the foundations for handling the other cases once we have a proper UI design (which we're working on in the background, but with no ETA as of yet).
The command is much the same but the actual implementation matrix-org/matrix-js-sdk#2496 will now only hide invitations. We now have a command to unignore invitations from a room.
|
@Gnuxie Heads up: the type of |
| if (Boolean(targetRoomId)) { | ||
| const ignoredInvites = cli.getIgnoredInvites(); | ||
| if (ignoredInvites.ignored_rooms === undefined) { | ||
| ignoredInvites.ignored_rooms = []; |
There was a problem hiding this comment.
In the latest version of the PR, ignored_rooms has become readonly.
| ignoredInvites.ignored_rooms = []; | ||
| } | ||
| const isAlreadyIgnored = Boolean(ignoredInvites.ignored_rooms | ||
| .find(ignoredRoom => ignoredRoom.room_id === targetRoomId)); |
There was a problem hiding this comment.
In the latest version of the PR, this is an object, rather than an array.
| if (!isAlreadyIgnored) { | ||
| ignoredInvites.ignored_rooms.push({ | ||
| room_id: targetRoomId, | ||
| ts: Date.now(), // TODO: Check this is the timestamp we want? |
| if (roomMatches) { | ||
| const roomId = roomMatches[1]; | ||
| const ignoredInvites = cli.getIgnoredInvites(); | ||
| if (ignoredInvites.ignored_rooms === undefined) { |
|
@Gnuxie is this abandoned? Will close if so. |
Based on matrix-org/matrix-js-sdk#2483
Doesn't actually ignore anything, just updates the list in the above PR
This PR currently has none of the required changelog labels.
A reviewer can add one of:
T-Deprecation,T-Enhancement,T-Defect,T-Taskto indicate what type of change this is, or addType: [enhancement/defect/task]to the description and I'll add them for you.