From afef3ff41ff9dc5c9bbb0777bd3072003595e652 Mon Sep 17 00:00:00 2001 From: R Midhun Suresh Date: Wed, 10 Dec 2025 17:48:02 +0530 Subject: [PATCH] Use auto disposing hook --- src/events/EventTileFactory.tsx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/events/EventTileFactory.tsx b/src/events/EventTileFactory.tsx index e364723384..78d458db6f 100644 --- a/src/events/EventTileFactory.tsx +++ b/src/events/EventTileFactory.tsx @@ -17,7 +17,7 @@ import { M_POLL_END, M_POLL_START, } from "matrix-js-sdk/src/matrix"; -import { TextualEventView } from "@element-hq/web-shared-components"; +import { TextualEventView, useCreateAutoDisposedViewModel } from "@element-hq/web-shared-components"; import SettingsStore from "../settings/SettingsStore"; import type LegacyCallEventGrouper from "../components/structures/LegacyCallEventGrouper"; @@ -77,10 +77,18 @@ const LegacyCallEventFactory: Factory ); const CallEventFactory: Factory = (ref, props) => ; -export const TextualEventFactory: Factory = (ref, props) => { - const vm = new TextualEventViewModel(props); + +/** + * Wrap {@link TextualEventView} in a component so that we can call {@link useCreateAutoDisposedViewModel} hook. + * Without the wrapping component, this code will throw a bunch of invalid hook call errors. + */ +const TextualEventWrapper: React.FC = (props) => { + const vm = useCreateAutoDisposedViewModel(() => new TextualEventViewModel(props)); return ; }; +export const TextualEventFactory: Factory = (ref, props) => { + return ; +}; const VerificationReqFactory: Factory = (_ref, props) => ; const HiddenEventFactory: Factory = (ref, props) => ;