move Settings watchers over to an ES6 Map

pull/21833/head
Michael Telatynski 2021-05-19 09:06:01 +01:00
parent cf384c2a54
commit cb2ee0451d
1 changed files with 6 additions and 6 deletions

View File

@ -26,7 +26,7 @@ import { _t } from '../languageHandler';
import dis from '../dispatcher/dispatcher'; import dis from '../dispatcher/dispatcher';
import { ISetting, SETTINGS } from "./Settings"; import { ISetting, SETTINGS } from "./Settings";
import LocalEchoWrapper from "./handlers/LocalEchoWrapper"; import LocalEchoWrapper from "./handlers/LocalEchoWrapper";
import { WatchManager } from "./WatchManager"; import { WatchManager, CallbackFn as WatchCallbackFn } from "./WatchManager";
import { SettingLevel } from "./SettingLevel"; import { SettingLevel } from "./SettingLevel";
import SettingsHandler from "./handlers/SettingsHandler"; import SettingsHandler from "./handlers/SettingsHandler";
@ -117,7 +117,7 @@ export default class SettingsStore {
// We also maintain a list of monitors which are special watchers: they cause dispatches // We also maintain a list of monitors which are special watchers: they cause dispatches
// when the setting changes. We track which rooms we're monitoring though to ensure we // when the setting changes. We track which rooms we're monitoring though to ensure we
// don't duplicate updates on the bus. // don't duplicate updates on the bus.
private static watchers = {}; // { callbackRef => { callbackFn } } private static watchers = new Map<string, WatchCallbackFn>();
private static monitors = {}; // { settingName => { roomId => callbackRef } } private static monitors = {}; // { settingName => { roomId => callbackRef } }
// Counter used for generation of watcher IDs // Counter used for generation of watcher IDs
@ -163,7 +163,7 @@ export default class SettingsStore {
callbackFn(originalSettingName, changedInRoomId, atLevel, newValAtLevel, newValue); callbackFn(originalSettingName, changedInRoomId, atLevel, newValAtLevel, newValue);
}; };
SettingsStore.watchers[watcherId] = localizedCallback; SettingsStore.watchers.set(watcherId, localizedCallback);
defaultWatchManager.watchSetting(settingName, roomId, localizedCallback); defaultWatchManager.watchSetting(settingName, roomId, localizedCallback);
return watcherId; return watcherId;
@ -176,13 +176,13 @@ export default class SettingsStore {
* to cancel. * to cancel.
*/ */
public static unwatchSetting(watcherReference: string) { public static unwatchSetting(watcherReference: string) {
if (!SettingsStore.watchers[watcherReference]) { if (!SettingsStore.watchers.has(watcherReference)) {
console.warn(`Ending non-existent watcher ID ${watcherReference}`); console.warn(`Ending non-existent watcher ID ${watcherReference}`);
return; return;
} }
defaultWatchManager.unwatchSetting(SettingsStore.watchers[watcherReference]); defaultWatchManager.unwatchSetting(SettingsStore.watchers.get(watcherReference));
delete SettingsStore.watchers[watcherReference]; SettingsStore.watchers.delete(watcherReference);
} }
/** /**