diff --git a/src/components/views/rooms/AppsDrawer.js b/src/components/views/rooms/AppsDrawer.js index 5efcefc4bc..4aa9efa3fd 100644 --- a/src/components/views/rooms/AppsDrawer.js +++ b/src/components/views/rooms/AppsDrawer.js @@ -287,7 +287,7 @@ const PersistentVResizer = ({ const [height, setHeight] = useStateCallback(defaultHeight, newHeight => { newHeight = percentageOf(newHeight, minHeight, maxHeight) * 100; - WidgetLayoutStore.instance.setContainerHeight(room, Container.Top, newHeight) + WidgetLayoutStore.instance.setContainerHeight(room, Container.Top, newHeight); }); return { - const [value, setValue] = useState(SettingsStore.getValue(settingName, roomId, excludeDefault)); +export const useSettingValue = (settingName: string, roomId: string = null, excludeDefault = false) => { + const [value, setValue] = useState(SettingsStore.getValue(settingName, roomId, excludeDefault)); useEffect(() => { const ref = SettingsStore.watchSetting(settingName, roomId, () => { - setValue(SettingsStore.getValue(settingName, roomId, excludeDefault)); + setValue(SettingsStore.getValue(settingName, roomId, excludeDefault)); }); // clean-up return () => { diff --git a/src/stores/AsyncStoreWithClient.ts b/src/stores/AsyncStoreWithClient.ts index 3050555ad4..38e709d8c2 100644 --- a/src/stores/AsyncStoreWithClient.ts +++ b/src/stores/AsyncStoreWithClient.ts @@ -21,13 +21,13 @@ import { Dispatcher } from "flux"; import { ReadyWatchingStore } from "./ReadyWatchingStore"; export abstract class AsyncStoreWithClient extends AsyncStore { - private readyStore: ReadyWatchingStore; + protected readyStore: ReadyWatchingStore; protected constructor(dispatcher: Dispatcher, initialState: T = {}) { super(dispatcher, initialState); // Create an anonymous class to avoid code duplication - const asyncStore = this; + const asyncStore = this; // eslint-disable-line @typescript-eslint/no-this-alias this.readyStore = new (class extends ReadyWatchingStore { public get mxClient(): MatrixClient { return this.matrixClient; diff --git a/src/stores/room-list/RoomListStore.ts b/src/stores/room-list/RoomListStore.ts index b2fe630760..cc9e00d29b 100644 --- a/src/stores/room-list/RoomListStore.ts +++ b/src/stores/room-list/RoomListStore.ts @@ -114,7 +114,7 @@ export class RoomListStoreClass extends AsyncStoreWithClient { // Public for test usage. Do not call this. public async makeReady(forcedClient?: MatrixClient) { if (forcedClient) { - super.matrixClient = forcedClient; + super.readyStore.matrixClient = forcedClient; } this.checkLoggingEnabled(); diff --git a/src/stores/widgets/WidgetLayoutStore.ts b/src/stores/widgets/WidgetLayoutStore.ts index b9350328f6..9742712fcf 100644 --- a/src/stores/widgets/WidgetLayoutStore.ts +++ b/src/stores/widgets/WidgetLayoutStore.ts @@ -155,7 +155,7 @@ export class WidgetLayoutStore extends ReadyWatchingStore { if (room) this.recalculateRoom(room); }; - private updateFromSettings = (settingName: string, roomId: string, /* and other stuff */) => { + private updateFromSettings = (settingName: string, roomId: string /* and other stuff */) => { if (roomId) { const room = this.matrixClient.getRoom(roomId); if (room) this.recalculateRoom(room); @@ -266,10 +266,6 @@ export class WidgetLayoutStore extends ReadyWatchingStore { maxHeight = Math.max(maxHeight, clamp(h, MIN_WIDGET_HEIGHT_PCT, 100)); } } - let remainingWidth = 100; - for (const width of widths) { - remainingWidth -= width; - } if (doAutobalance) { for (let i = 0; i < widths.length; i++) { widths[i] = 100 / widths.length; @@ -406,7 +402,9 @@ export class WidgetLayoutStore extends ReadyWatchingStore { public moveToContainer(room: Room, widget: IApp, toContainer: Container) { const allWidgets = this.getAllWidgets(room); if (!allWidgets.some(([w])=> w.id === widget.id)) return; // invalid - this.updateUserLayout(room, {[widget.id]:{container: toContainer}}); + this.updateUserLayout(room, { + [widget.id]: {container: toContainer}, + }); } public canCopyLayoutToRoom(room: Room): boolean {