UNPKG

matrix-react-sdk

Version:
61 lines (58 loc) 8.49 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _SettingsHandler = _interopRequireDefault(require("./SettingsHandler")); var _PlatformPeg = _interopRequireDefault(require("../../PlatformPeg")); var _Settings = require("../Settings"); var _SettingLevel = require("../SettingLevel"); var _dispatcher = _interopRequireDefault(require("../../dispatcher/dispatcher")); var _actions = require("../../dispatcher/actions"); /* Copyright 2024 New Vector Ltd. Copyright 2022 The Matrix.org Foundation C.I.C. SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ /** * Gets and sets settings at the "platform" level for the current device. * This handler does not make use of the roomId parameter. */ class PlatformSettingsHandler extends _SettingsHandler.default { constructor() { super(); (0, _defineProperty2.default)(this, "store", {}); (0, _defineProperty2.default)(this, "onAction", payload => { if (payload.action === _actions.Action.PlatformSet) { this.store = {}; // Load setting values as they are async and `getValue` must be synchronous Object.entries(_Settings.SETTINGS).forEach(([key, setting]) => { if (setting.supportedLevels?.includes(_SettingLevel.SettingLevel.PLATFORM) && payload.platform.supportsSetting(key)) { payload.platform.getSettingValue(key).then(value => { this.store[key] = value; }); } }); } }); _dispatcher.default.register(this.onAction); } canSetValue(settingName, roomId) { return _PlatformPeg.default.get()?.supportsSetting(settingName) ?? false; } getValue(settingName, roomId) { return this.store[settingName]; } async setValue(settingName, roomId, newValue) { this.store[settingName] = newValue; // keep cache up to date for synchronous access await _PlatformPeg.default.get()?.setSettingValue(settingName, newValue); } isSupported() { return _PlatformPeg.default.get()?.supportsSetting() ?? false; } } exports.default = PlatformSettingsHandler; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfU2V0dGluZ3NIYW5kbGVyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfUGxhdGZvcm1QZWciLCJfU2V0dGluZ3MiLCJfU2V0dGluZ0xldmVsIiwiX2Rpc3BhdGNoZXIiLCJfYWN0aW9ucyIsIlBsYXRmb3JtU2V0dGluZ3NIYW5kbGVyIiwiU2V0dGluZ3NIYW5kbGVyIiwiY29uc3RydWN0b3IiLCJfZGVmaW5lUHJvcGVydHkyIiwiZGVmYXVsdCIsInBheWxvYWQiLCJhY3Rpb24iLCJBY3Rpb24iLCJQbGF0Zm9ybVNldCIsInN0b3JlIiwiT2JqZWN0IiwiZW50cmllcyIsIlNFVFRJTkdTIiwiZm9yRWFjaCIsImtleSIsInNldHRpbmciLCJzdXBwb3J0ZWRMZXZlbHMiLCJpbmNsdWRlcyIsIlNldHRpbmdMZXZlbCIsIlBMQVRGT1JNIiwicGxhdGZvcm0iLCJzdXBwb3J0c1NldHRpbmciLCJnZXRTZXR0aW5nVmFsdWUiLCJ0aGVuIiwidmFsdWUiLCJkZWZhdWx0RGlzcGF0Y2hlciIsInJlZ2lzdGVyIiwib25BY3Rpb24iLCJjYW5TZXRWYWx1ZSIsInNldHRpbmdOYW1lIiwicm9vbUlkIiwiUGxhdGZvcm1QZWciLCJnZXQiLCJnZXRWYWx1ZSIsInNldFZhbHVlIiwibmV3VmFsdWUiLCJzZXRTZXR0aW5nVmFsdWUiLCJpc1N1cHBvcnRlZCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2V0dGluZ3MvaGFuZGxlcnMvUGxhdGZvcm1TZXR0aW5nc0hhbmRsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0IFNldHRpbmdzSGFuZGxlciBmcm9tIFwiLi9TZXR0aW5nc0hhbmRsZXJcIjtcbmltcG9ydCBQbGF0Zm9ybVBlZyBmcm9tIFwiLi4vLi4vUGxhdGZvcm1QZWdcIjtcbmltcG9ydCB7IFNFVFRJTkdTIH0gZnJvbSBcIi4uL1NldHRpbmdzXCI7XG5pbXBvcnQgeyBTZXR0aW5nTGV2ZWwgfSBmcm9tIFwiLi4vU2V0dGluZ0xldmVsXCI7XG5pbXBvcnQgZGVmYXVsdERpc3BhdGNoZXIgZnJvbSBcIi4uLy4uL2Rpc3BhdGNoZXIvZGlzcGF0Y2hlclwiO1xuaW1wb3J0IHsgQWN0aW9uUGF5bG9hZCB9IGZyb20gXCIuLi8uLi9kaXNwYXRjaGVyL3BheWxvYWRzXCI7XG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tIFwiLi4vLi4vZGlzcGF0Y2hlci9hY3Rpb25zXCI7XG5cbi8qKlxuICogR2V0cyBhbmQgc2V0cyBzZXR0aW5ncyBhdCB0aGUgXCJwbGF0Zm9ybVwiIGxldmVsIGZvciB0aGUgY3VycmVudCBkZXZpY2UuXG4gKiBUaGlzIGhhbmRsZXIgZG9lcyBub3QgbWFrZSB1c2Ugb2YgdGhlIHJvb21JZCBwYXJhbWV0ZXIuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBsYXRmb3JtU2V0dGluZ3NIYW5kbGVyIGV4dGVuZHMgU2V0dGluZ3NIYW5kbGVyIHtcbiAgICBwcml2YXRlIHN0b3JlOiB7IFtzZXR0aW5nTmFtZTogc3RyaW5nXTogYW55IH0gPSB7fTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICBkZWZhdWx0RGlzcGF0Y2hlci5yZWdpc3Rlcih0aGlzLm9uQWN0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uQWN0aW9uID0gKHBheWxvYWQ6IEFjdGlvblBheWxvYWQpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKHBheWxvYWQuYWN0aW9uID09PSBBY3Rpb24uUGxhdGZvcm1TZXQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUgPSB7fTtcbiAgICAgICAgICAgIC8vIExvYWQgc2V0dGluZyB2YWx1ZXMgYXMgdGhleSBhcmUgYXN5bmMgYW5kIGBnZXRWYWx1ZWAgbXVzdCBiZSBzeW5jaHJvbm91c1xuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoU0VUVElOR1MpLmZvckVhY2goKFtrZXksIHNldHRpbmddKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHNldHRpbmcuc3VwcG9ydGVkTGV2ZWxzPy5pbmNsdWRlcyhTZXR0aW5nTGV2ZWwuUExBVEZPUk0pICYmIHBheWxvYWQucGxhdGZvcm0uc3VwcG9ydHNTZXR0aW5nKGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcGF5bG9hZC5wbGF0Zm9ybS5nZXRTZXR0aW5nVmFsdWUoa2V5KS50aGVuKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcHVibGljIGNhblNldFZhbHVlKHNldHRpbmdOYW1lOiBzdHJpbmcsIHJvb21JZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBQbGF0Zm9ybVBlZy5nZXQoKT8uc3VwcG9ydHNTZXR0aW5nKHNldHRpbmdOYW1lKSA/PyBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VmFsdWUoc2V0dGluZ05hbWU6IHN0cmluZywgcm9vbUlkOiBzdHJpbmcpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdG9yZVtzZXR0aW5nTmFtZV07XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNldFZhbHVlKHNldHRpbmdOYW1lOiBzdHJpbmcsIHJvb21JZDogc3RyaW5nLCBuZXdWYWx1ZTogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuc3RvcmVbc2V0dGluZ05hbWVdID0gbmV3VmFsdWU7IC8vIGtlZXAgY2FjaGUgdXAgdG8gZGF0ZSBmb3Igc3luY2hyb25vdXMgYWNjZXNzXG4gICAgICAgIGF3YWl0IFBsYXRmb3JtUGVnLmdldCgpPy5zZXRTZXR0aW5nVmFsdWUoc2V0dGluZ05hbWUsIG5ld1ZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNTdXBwb3J0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBQbGF0Zm9ybVBlZy5nZXQoKT8uc3VwcG9ydHNTZXR0aW5nKCkgPz8gZmFsc2U7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQVFBLElBQUFBLGdCQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxZQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxTQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxhQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxXQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBSyxRQUFBLEdBQUFMLE9BQUE7QUFkQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFVQTtBQUNBO0FBQ0E7QUFDQTtBQUNlLE1BQU1NLHVCQUF1QixTQUFTQyx3QkFBZSxDQUFDO0VBRzFEQyxXQUFXQSxDQUFBLEVBQUc7SUFDakIsS0FBSyxDQUFDLENBQUM7SUFBQyxJQUFBQyxnQkFBQSxDQUFBQyxPQUFBLGlCQUhvQyxDQUFDLENBQUM7SUFBQSxJQUFBRCxnQkFBQSxDQUFBQyxPQUFBLG9CQVE5QkMsT0FBc0IsSUFBVztNQUNqRCxJQUFJQSxPQUFPLENBQUNDLE1BQU0sS0FBS0MsZUFBTSxDQUFDQyxXQUFXLEVBQUU7UUFDdkMsSUFBSSxDQUFDQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2Y7UUFDQUMsTUFBTSxDQUFDQyxPQUFPLENBQUNDLGtCQUFRLENBQUMsQ0FBQ0MsT0FBTyxDQUFDLENBQUMsQ0FBQ0MsR0FBRyxFQUFFQyxPQUFPLENBQUMsS0FBSztVQUNqRCxJQUFJQSxPQUFPLENBQUNDLGVBQWUsRUFBRUMsUUFBUSxDQUFDQywwQkFBWSxDQUFDQyxRQUFRLENBQUMsSUFBSWQsT0FBTyxDQUFDZSxRQUFRLENBQUNDLGVBQWUsQ0FBQ1AsR0FBRyxDQUFDLEVBQUU7WUFDbkdULE9BQU8sQ0FBQ2UsUUFBUSxDQUFDRSxlQUFlLENBQUNSLEdBQUcsQ0FBQyxDQUFDUyxJQUFJLENBQUVDLEtBQVUsSUFBSztjQUN2RCxJQUFJLENBQUNmLEtBQUssQ0FBQ0ssR0FBRyxDQUFDLEdBQUdVLEtBQUs7WUFDM0IsQ0FBQyxDQUFDO1VBQ047UUFDSixDQUFDLENBQUM7TUFDTjtJQUNKLENBQUM7SUFmR0MsbUJBQWlCLENBQUNDLFFBQVEsQ0FBQyxJQUFJLENBQUNDLFFBQVEsQ0FBQztFQUM3QztFQWdCT0MsV0FBV0EsQ0FBQ0MsV0FBbUIsRUFBRUMsTUFBYyxFQUFXO0lBQzdELE9BQU9DLG9CQUFXLENBQUNDLEdBQUcsQ0FBQyxDQUFDLEVBQUVYLGVBQWUsQ0FBQ1EsV0FBVyxDQUFDLElBQUksS0FBSztFQUNuRTtFQUVPSSxRQUFRQSxDQUFDSixXQUFtQixFQUFFQyxNQUFjLEVBQU87SUFDdEQsT0FBTyxJQUFJLENBQUNyQixLQUFLLENBQUNvQixXQUFXLENBQUM7RUFDbEM7RUFFQSxNQUFhSyxRQUFRQSxDQUFDTCxXQUFtQixFQUFFQyxNQUFjLEVBQUVLLFFBQWEsRUFBaUI7SUFDckYsSUFBSSxDQUFDMUIsS0FBSyxDQUFDb0IsV0FBVyxDQUFDLEdBQUdNLFFBQVEsQ0FBQyxDQUFDO0lBQ3BDLE1BQU1KLG9CQUFXLENBQUNDLEdBQUcsQ0FBQyxDQUFDLEVBQUVJLGVBQWUsQ0FBQ1AsV0FBVyxFQUFFTSxRQUFRLENBQUM7RUFDbkU7RUFFT0UsV0FBV0EsQ0FBQSxFQUFZO0lBQzFCLE9BQU9OLG9CQUFXLENBQUNDLEdBQUcsQ0FBQyxDQUFDLEVBQUVYLGVBQWUsQ0FBQyxDQUFDLElBQUksS0FBSztFQUN4RDtBQUNKO0FBQUNpQixPQUFBLENBQUFsQyxPQUFBLEdBQUFKLHVCQUFBIiwiaWdub3JlTGlzdCI6W119