From edd7354b6c6b29c9703e71c28154ba7f6e7c6f46 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Wed, 24 Aug 2022 11:51:52 +0100 Subject: [PATCH 1/4] Reuse empty string & space string logic for event types in devtools --- .../views/dialogs/devtools/RoomState.tsx | 55 +++++++++---------- 1 file changed, 25 insertions(+), 30 deletions(-) diff --git a/src/components/views/dialogs/devtools/RoomState.tsx b/src/components/views/dialogs/devtools/RoomState.tsx index d8a6fc04089..4cad294012d 100644 --- a/src/components/views/dialogs/devtools/RoomState.tsx +++ b/src/components/views/dialogs/devtools/RoomState.tsx @@ -41,6 +41,25 @@ export const StateEventEditor = ({ mxEvent, onBack }: IEditorProps) => { return ; }; +interface StateEventButtonProps { + label: string; + onClick(): void; +} + +const StateEventButton = ({ label, onClick }: StateEventButtonProps) => { + const trimmed = label.trim(); + + return ; +}; + interface IEventTypeProps extends Pick { eventType: string; } @@ -70,23 +89,9 @@ const RoomStateExplorerEventType = ({ eventType, onBack }: IEventTypeProps) => { return { - Array.from(events.entries()).map(([stateKey, ev]) => { - const trimmed = stateKey.trim(); - const onClick = () => { - setEvent(ev); - }; - - return ; - }) + Array.from(events.entries()).map(([stateKey, ev]) => ( + setEvent(ev)} /> + )) } ; @@ -113,19 +118,9 @@ export const RoomStateExplorer = ({ onBack, setTool }: IDevtoolsProps) => { return { - Array.from(events.keys()).map((eventType) => { - const onClick = () => { - setEventType(eventType); - }; - - return ; - }) + Array.from(events.keys()).map((eventType) => ( + setEventType(eventType)} /> + )) } ; From 5e51709cd438223e5b0965f1efaa45b09295b32e Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Wed, 24 Aug 2022 11:57:34 +0100 Subject: [PATCH 2/4] Fix edge case behaviours --- src/components/views/dialogs/devtools/RoomState.tsx | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/components/views/dialogs/devtools/RoomState.tsx b/src/components/views/dialogs/devtools/RoomState.tsx index 4cad294012d..fabadbd1265 100644 --- a/src/components/views/dialogs/devtools/RoomState.tsx +++ b/src/components/views/dialogs/devtools/RoomState.tsx @@ -80,10 +80,14 @@ const RoomStateExplorerEventType = ({ eventType, onBack }: IEventTypeProps) => { }, [events]); if (event) { - const onBack = () => { - setEvent(null); + const _onBack = () => { + if (events.size === 1 && events.has("")) { + onBack(); + } else { + setEvent(null); + } }; - return ; + return ; } return @@ -104,7 +108,7 @@ export const RoomStateExplorer = ({ onBack, setTool }: IDevtoolsProps) => { const events = context.room.currentState.events; - if (eventType) { + if (eventType !== null) { const onBack = () => { setEventType(null); }; From 78efcfc513449a5889b130258f034126b37fa05a Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Wed, 24 Aug 2022 11:58:59 +0100 Subject: [PATCH 3/4] Make tsc quality higher --- src/components/views/dialogs/devtools/RoomState.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/views/dialogs/devtools/RoomState.tsx b/src/components/views/dialogs/devtools/RoomState.tsx index fabadbd1265..11ce7b62711 100644 --- a/src/components/views/dialogs/devtools/RoomState.tsx +++ b/src/components/views/dialogs/devtools/RoomState.tsx @@ -67,12 +67,12 @@ interface IEventTypeProps extends Pick { const RoomStateExplorerEventType = ({ eventType, onBack }: IEventTypeProps) => { const context = useContext(DevtoolsContext); const [query, setQuery] = useState(""); - const [event, setEvent] = useState(null); + const [event, setEvent] = useState(null); const events = context.room.currentState.events.get(eventType); useEffect(() => { - if (events.size === 1 && events.has("")) { + if (events?.size === 1 && events.has("")) { setEvent(events.get("")); } else { setEvent(null); @@ -81,7 +81,7 @@ const RoomStateExplorerEventType = ({ eventType, onBack }: IEventTypeProps) => { if (event) { const _onBack = () => { - if (events.size === 1 && events.has("")) { + if (events?.size === 1 && events.has("")) { onBack(); } else { setEvent(null); @@ -104,7 +104,7 @@ const RoomStateExplorerEventType = ({ eventType, onBack }: IEventTypeProps) => { export const RoomStateExplorer = ({ onBack, setTool }: IDevtoolsProps) => { const context = useContext(DevtoolsContext); const [query, setQuery] = useState(""); - const [eventType, setEventType] = useState(null); + const [eventType, setEventType] = useState(null); const events = context.room.currentState.events; From bfd8eb00d29a12b8554222c9263ad5f030df37a8 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Wed, 24 Aug 2022 12:03:45 +0100 Subject: [PATCH 4/4] Make remainder of tsc happy --- src/components/views/dialogs/devtools/RoomState.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/views/dialogs/devtools/RoomState.tsx b/src/components/views/dialogs/devtools/RoomState.tsx index 11ce7b62711..4ad4a1c8211 100644 --- a/src/components/views/dialogs/devtools/RoomState.tsx +++ b/src/components/views/dialogs/devtools/RoomState.tsx @@ -69,11 +69,11 @@ const RoomStateExplorerEventType = ({ eventType, onBack }: IEventTypeProps) => { const [query, setQuery] = useState(""); const [event, setEvent] = useState(null); - const events = context.room.currentState.events.get(eventType); + const events = context.room.currentState.events.get(eventType)!; useEffect(() => { - if (events?.size === 1 && events.has("")) { - setEvent(events.get("")); + if (events.size === 1 && events.has("")) { + setEvent(events.get("")!); } else { setEvent(null); }