Have LocalEchoWrapper emit updates so the app can react faster (#7358)
This commit is contained in:
parent
feea80dfd5
commit
9ed771ad7a
8 changed files with 30 additions and 16 deletions
|
@ -28,7 +28,7 @@ import { _t } from '../languageHandler';
|
|||
import dis from '../dispatcher/dispatcher';
|
||||
import { IFeature, ISetting, LabGroup, SETTINGS } from "./Settings";
|
||||
import LocalEchoWrapper from "./handlers/LocalEchoWrapper";
|
||||
import { WatchManager, CallbackFn as WatchCallbackFn } from "./WatchManager";
|
||||
import { CallbackFn as WatchCallbackFn, WatchManager } from "./WatchManager";
|
||||
import { SettingLevel } from "./SettingLevel";
|
||||
import SettingsHandler from "./handlers/SettingsHandler";
|
||||
import { SettingUpdatedPayload } from "../dispatcher/payloads/SettingUpdatedPayload";
|
||||
|
@ -50,21 +50,20 @@ for (const key of Object.keys(SETTINGS)) {
|
|||
}
|
||||
}
|
||||
|
||||
// Only wrap the handlers with async setters in a local echo wrapper
|
||||
const LEVEL_HANDLERS = {
|
||||
[SettingLevel.DEVICE]: new DeviceSettingsHandler(featureNames, defaultWatchManager),
|
||||
[SettingLevel.ROOM_DEVICE]: new RoomDeviceSettingsHandler(defaultWatchManager),
|
||||
[SettingLevel.ROOM_ACCOUNT]: new RoomAccountSettingsHandler(defaultWatchManager),
|
||||
[SettingLevel.ACCOUNT]: new AccountSettingsHandler(defaultWatchManager),
|
||||
[SettingLevel.ROOM]: new RoomSettingsHandler(defaultWatchManager),
|
||||
[SettingLevel.ROOM_ACCOUNT]: new LocalEchoWrapper(
|
||||
new RoomAccountSettingsHandler(defaultWatchManager),
|
||||
SettingLevel.ROOM_ACCOUNT,
|
||||
),
|
||||
[SettingLevel.ACCOUNT]: new LocalEchoWrapper(new AccountSettingsHandler(defaultWatchManager), SettingLevel.ACCOUNT),
|
||||
[SettingLevel.ROOM]: new LocalEchoWrapper(new RoomSettingsHandler(defaultWatchManager), SettingLevel.ROOM),
|
||||
[SettingLevel.CONFIG]: new ConfigSettingsHandler(featureNames),
|
||||
[SettingLevel.DEFAULT]: new DefaultSettingsHandler(defaultSettings, invertedDefaultSettings),
|
||||
};
|
||||
|
||||
// Wrap all the handlers with local echo
|
||||
for (const key of Object.keys(LEVEL_HANDLERS)) {
|
||||
LEVEL_HANDLERS[key] = new LocalEchoWrapper(LEVEL_HANDLERS[key]);
|
||||
}
|
||||
|
||||
export const LEVEL_ORDER = [
|
||||
SettingLevel.DEVICE,
|
||||
SettingLevel.ROOM_DEVICE,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue