diff --git a/.changeset/add_tombstone_settings_toggle_for_redacted_msgs.md b/.changeset/add_tombstone_settings_toggle_for_redacted_msgs.md new file mode 100644 index 000000000..06b497a1e --- /dev/null +++ b/.changeset/add_tombstone_settings_toggle_for_redacted_msgs.md @@ -0,0 +1,5 @@ +--- +sable: patch +--- + +added settings toggle in (General>Messages) to enable showing a tombstone for deleted messages without having to set all hidden events to visible diff --git a/src/app/features/room/RoomTimeline.tsx b/src/app/features/room/RoomTimeline.tsx index 84c9e0108..9e14a6826 100644 --- a/src/app/features/room/RoomTimeline.tsx +++ b/src/app/features/room/RoomTimeline.tsx @@ -573,6 +573,7 @@ export function RoomTimeline({ const [encUrlPreview] = useSetting(settingsAtom, 'encUrlPreview'); const showUrlPreview = room.hasEncryptionStateEvent() ? encUrlPreview : urlPreview; const [showHiddenEvents] = useSetting(settingsAtom, 'showHiddenEvents'); + const [showTombstoneEvents] = useSetting(settingsAtom, 'showTombstoneEvents'); const [showDeveloperTools] = useSetting(settingsAtom, 'developerTools'); const [reducedMotion] = useSetting(settingsAtom, 'reducedMotion'); @@ -2063,7 +2064,7 @@ export function RoomTimeline({ if (eventSender && ignoredUsersSet.has(eventSender)) { return null; } - if (mEvent.isRedacted() && !showHiddenEvents) { + if (mEvent.isRedacted() && !(showHiddenEvents || showTombstoneEvents)) { return null; } diff --git a/src/app/features/settings/general/General.tsx b/src/app/features/settings/general/General.tsx index a329ec8ef..fd0d9d705 100644 --- a/src/app/features/settings/general/General.tsx +++ b/src/app/features/settings/general/General.tsx @@ -385,6 +385,16 @@ function SelectDateFormat() { ); } +function getTombstoneSettingToggleTitle(showHidden: boolean, showTombstone: boolean): string { + if (showHidden) { + return 'Tombstone events are always shown when "Show Hidden Events" is enabled.'; + } + if (showTombstone) { + return 'Disable to hide redacted messages entirely instead of showing a tombstone.'; + } + return 'Enable to show tombstone events for redacted messages instead of hiding them entirely.'; +} + function DateAndTime() { const [hour24Clock, setHour24Clock] = useSetting(settingsAtom, 'hour24Clock'); @@ -826,6 +836,10 @@ function Messages() { const [urlPreview, setUrlPreview] = useSetting(settingsAtom, 'urlPreview'); const [encUrlPreview, setEncUrlPreview] = useSetting(settingsAtom, 'encUrlPreview'); const [showHiddenEvents, setShowHiddenEvents] = useSetting(settingsAtom, 'showHiddenEvents'); + const [showTombstoneEvents, setShowTombstoneEvents] = useSetting( + settingsAtom, + 'showTombstoneEvents' + ); const [hideMembershipInReadOnly, setHideMembershipInReadOnly] = useSetting( settingsAtom, 'hideMembershipInReadOnly' @@ -924,7 +938,30 @@ function Messages() { +