From cc2ee5ea7872cfdfc0775c26beba2e138e2ca1f3 Mon Sep 17 00:00:00 2001 From: Timo <16718859+toger5@users.noreply.github.com> Date: Tue, 22 Jul 2025 16:11:16 +0200 Subject: [PATCH] Add toggle to hide empty state in devtools (#30352) * Add toggle to hide empty state in devtools * use translated string * lint * inverse logic(`hide`->`show`) * move entry in i18n to correct position --- .../views/dialogs/devtools/RoomState.tsx | 15 ++++++++++++--- src/i18n/strings/en_EN.json | 1 + 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/components/views/dialogs/devtools/RoomState.tsx b/src/components/views/dialogs/devtools/RoomState.tsx index 0a41743372..1f33fc5eea 100644 --- a/src/components/views/dialogs/devtools/RoomState.tsx +++ b/src/components/views/dialogs/devtools/RoomState.tsx @@ -19,6 +19,7 @@ import FilteredList from "./FilteredList"; import Spinner from "../../elements/Spinner"; import SyntaxHighlight from "../../elements/SyntaxHighlight"; import { useAsyncMemo } from "../../../../hooks/useAsyncMemo"; +import LabelledToggleSwitch from "../../elements/LabelledToggleSwitch"; export const StateEventEditor: React.FC = ({ mxEvent, onBack }) => { const context = useContext(DevtoolsContext); @@ -114,6 +115,7 @@ const RoomStateExplorerEventType: React.FC = ({ eventType, onBa const [query, setQuery] = useState(""); const [event, setEvent] = useState(null); const [history, setHistory] = useState(false); + const [showEmptyState, setShowEmptyState] = useState(true); const events = context.room.currentState.events.get(eventType)!; @@ -149,10 +151,17 @@ const RoomStateExplorerEventType: React.FC = ({ eventType, onBa return ( - {Array.from(events.entries()).map(([stateKey, ev]) => ( - setEvent(ev)} /> - ))} + {Array.from(events.entries()) + .filter(([_, ev]) => showEmptyState || Object.keys(ev.getContent()).length > 0) + .map(([stateKey, ev]) => ( + setEvent(ev)} /> + ))} + ); }; diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 3be18c544f..f964a95ed5 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -863,6 +863,7 @@ "elementCallUrl": "Element Call URL" }, "settings_explorer": "Settings explorer", + "show_empty_content_events": "Show events with empty content", "show_hidden_events": "Show hidden events in timeline", "spaces": { "one": "",