From c3953f35a7b714c111e0f13cef6395ac94fd0d40 Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Thu, 18 May 2023 16:38:22 +0100 Subject: [PATCH 1/2] StickerPicker: update when accountdata is updated This was incorrectly listening for in-room account data; in fact `m.widgets` is global account data. Fixes some flaky cypress tests. --- src/components/views/rooms/Stickerpicker.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/components/views/rooms/Stickerpicker.tsx b/src/components/views/rooms/Stickerpicker.tsx index 92b7ddd6509..7cf2d98174d 100644 --- a/src/components/views/rooms/Stickerpicker.tsx +++ b/src/components/views/rooms/Stickerpicker.tsx @@ -15,9 +15,10 @@ limitations under the License. */ import React from "react"; -import { Room, RoomEvent } from "matrix-js-sdk/src/models/room"; +import { Room } from "matrix-js-sdk/src/models/room"; import { logger } from "matrix-js-sdk/src/logger"; import { IWidget } from "matrix-widget-api"; +import { ClientEvent } from "matrix-js-sdk/src/client"; import { _t, _td } from "../../../languageHandler"; import AppTile from "../elements/AppTile"; @@ -138,7 +139,7 @@ export default class Stickerpicker extends React.PureComponent { this.dispatcherRef = dis.register(this.onAction); // Track updates to widget state in account data - MatrixClientPeg.get().on(RoomEvent.AccountData, this.updateWidget); + MatrixClientPeg.get().on(ClientEvent.AccountData, this.updateWidget); RightPanelStore.instance.on(UPDATE_EVENT, this.onRightPanelStoreUpdate); // Initialise widget state from current account data From 834f66af516407db64489e0d7e3aef03ea80671d Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Thu, 18 May 2023 16:53:33 +0100 Subject: [PATCH 2/2] another ref --- src/components/views/rooms/Stickerpicker.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/views/rooms/Stickerpicker.tsx b/src/components/views/rooms/Stickerpicker.tsx index 7cf2d98174d..8b23c6a0cf6 100644 --- a/src/components/views/rooms/Stickerpicker.tsx +++ b/src/components/views/rooms/Stickerpicker.tsx @@ -148,7 +148,7 @@ export default class Stickerpicker extends React.PureComponent { public componentWillUnmount(): void { const client = MatrixClientPeg.get(); - if (client) client.removeListener(RoomEvent.AccountData, this.updateWidget); + if (client) client.removeListener(ClientEvent.AccountData, this.updateWidget); RightPanelStore.instance.off(UPDATE_EVENT, this.onRightPanelStoreUpdate); window.removeEventListener("resize", this.onResize); if (this.dispatcherRef) {