Hide the names of banned users behind a spoiler tag#32424
Hide the names of banned users behind a spoiler tag#32424andybalaam wants to merge 1 commit intodevelopfrom
Conversation
|
Tweaked title, originally thought "banned names" was like profanity detection or something |
b3ceecc to
3127eac
Compare
3127eac to
314b1c7
Compare
314b1c7 to
d6941d0
Compare
d6941d0 to
7e3fc72
Compare
|
T&S team feedback: this is a welcome change - it materially improves the status quo. Longer term, we'd be interested in exploring whether those events should be displayed in the timeline, or be viewable elsewhere. This is a welcome incremental change while we debate that question! |
src/TextForEvent.tsx
Outdated
| ? _t("timeline|m.room.member|ban_reason", { senderName, targetName: "<<TARGET>>", reason }) | ||
| : _t("timeline|m.room.member|ban", { senderName, targetName: "<<TARGET>>" }); | ||
| const targetI = text.indexOf("<<TARGET>>"); |
There was a problem hiding this comment.
This is all sorts of wild, we should not be doing things like this, the 3rd param to _t can apply React element replacers, it may need updates to the i18n strings but that is worth everyone's collective sanity. Again see textForJoinRulesEvent for an example.
There was a problem hiding this comment.
Yeah, didn't think this was the right way! Hopefully better attempt in 42986fc
|
Going to request design review as spoilers are something which is seldom seen by users and not sure if design ever signed them off, this will be putting them a lot more front and centre |
|
I think this is a wonderful idea. Is it using the same spolier UI we already have on element web? |
|
@amshakal yes it is, with the known issue that spoilers do not work for users relying on accessible technologies such as screen readers |
0f03422 to
948a1dd
Compare
src/TextForEvent.tsx
Outdated
| return allowJSX | ||
| ? reason | ||
| ? () => | ||
| _t( | ||
| "timeline|m.room.member|ban_reason_spoiler", | ||
| { | ||
| senderName, | ||
| reason, | ||
| }, | ||
| { | ||
| user: () => <Spoiler>{targetName}</Spoiler>, | ||
| }, | ||
| ) | ||
| : () => | ||
| _t( | ||
| "timeline|m.room.member|ban_spoiler", | ||
| { | ||
| senderName, | ||
| reason, | ||
| }, | ||
| { | ||
| user: () => <Spoiler>{targetName}</Spoiler>, | ||
| }, | ||
| ) | ||
| : reason | ||
| ? () => _t("timeline|m.room.member|ban_reason", { senderName, targetName, reason }) | ||
| : () => _t("timeline|m.room.member|ban", { senderName, targetName }); |
There was a problem hiding this comment.
please no, nested ternary is hellish. I suggest looking at the previous example I pointed you to for something to copy
948a1dd to
8244607
Compare
8244607 to
3ca5726
Compare
Make banned users' names (which may be offensive) hidden by default.
Demo
rec-2026-02-09_16.43.32.mp4