@@ -19,6 +19,7 @@ import FilteredList from "./FilteredList";
19
19
import Spinner from "../../elements/Spinner" ;
20
20
import SyntaxHighlight from "../../elements/SyntaxHighlight" ;
21
21
import { useAsyncMemo } from "../../../../hooks/useAsyncMemo" ;
22
+ import LabelledToggleSwitch from "../../elements/LabelledToggleSwitch" ;
22
23
23
24
export const StateEventEditor : React . FC < IEditorProps > = ( { mxEvent, onBack } ) => {
24
25
const context = useContext ( DevtoolsContext ) ;
@@ -114,6 +115,7 @@ const RoomStateExplorerEventType: React.FC<IEventTypeProps> = ({ eventType, onBa
114
115
const [ query , setQuery ] = useState ( "" ) ;
115
116
const [ event , setEvent ] = useState < MatrixEvent | null > ( null ) ;
116
117
const [ history , setHistory ] = useState ( false ) ;
118
+ const [ hideEmptyState , setHideEmptyState ] = useState ( false ) ;
117
119
118
120
const events = context . room . currentState . events . get ( eventType ) ! ;
119
121
@@ -149,10 +151,13 @@ const RoomStateExplorerEventType: React.FC<IEventTypeProps> = ({ eventType, onBa
149
151
return (
150
152
< BaseTool onBack = { onBack } >
151
153
< FilteredList query = { query } onChange = { setQuery } >
152
- { Array . from ( events . entries ( ) ) . map ( ( [ stateKey , ev ] ) => (
153
- < StateEventButton key = { stateKey } label = { stateKey } onClick = { ( ) => setEvent ( ev ) } />
154
- ) ) }
154
+ { Array . from ( events . entries ( ) )
155
+ . filter ( ( [ _ , ev ] ) => ! hideEmptyState || Object . keys ( ev . getContent ( ) ) . length > 0 )
156
+ . map ( ( [ stateKey , ev ] ) => (
157
+ < StateEventButton key = { stateKey } label = { stateKey } onClick = { ( ) => setEvent ( ev ) } />
158
+ ) ) }
155
159
</ FilteredList >
160
+ < LabelledToggleSwitch label = "Hide empty state keys" onChange = { setHideEmptyState } value = { hideEmptyState } />
156
161
</ BaseTool >
157
162
) ;
158
163
} ;
0 commit comments