UNPKG

matrix-react-sdk

Version:
83 lines (80 loc) 14.9 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireWildcard(require("react")); var _languageHandler = require("../../../languageHandler"); var _actions = require("../../../dispatcher/actions"); var _theme = require("../../../theme"); var _Dropdown = _interopRequireDefault(require("../elements/Dropdown")); var _SettingsStore = _interopRequireDefault(require("../../../settings/SettingsStore")); var _SettingLevel = require("../../../settings/SettingLevel"); var _dispatcher = _interopRequireDefault(require("../../../dispatcher/dispatcher")); var _PosthogTrackers = _interopRequireDefault(require("../../../PosthogTrackers")); var _useTheme = require("../../../hooks/useTheme"); function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } /* 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. */ const MATCH_SYSTEM_THEME_ID = "MATCH_SYSTEM_THEME_ID"; const QuickThemeSwitcher = ({ requestClose }) => { const orderedThemes = (0, _react.useMemo)(_theme.getOrderedThemes, []); const themeState = (0, _useTheme.useTheme)(); const nonHighContrast = (0, _theme.findNonHighContrastTheme)(themeState.theme); const theme = nonHighContrast ? nonHighContrast : themeState.theme; const { systemThemeActivated } = themeState; const themeOptions = [{ id: MATCH_SYSTEM_THEME_ID, name: (0, _languageHandler._t)("theme|match_system") }, ...orderedThemes]; const selectedTheme = systemThemeActivated ? MATCH_SYSTEM_THEME_ID : theme; const onOptionChange = async newTheme => { _PosthogTrackers.default.trackInteraction("WebQuickSettingsThemeDropdown"); try { if (newTheme === MATCH_SYSTEM_THEME_ID) { await _SettingsStore.default.setValue("use_system_theme", null, _SettingLevel.SettingLevel.DEVICE, true); } else { // The settings watcher doesn't fire until the echo comes back from the // server, so to make the theme change immediately we need to manually // do the dispatch now // XXX: The local echoed value appears to be unreliable, in particular // when settings custom themes(!) so adding forceTheme to override // the value from settings. _dispatcher.default.dispatch({ action: _actions.Action.RecheckTheme, forceTheme: newTheme }); await Promise.all([_SettingsStore.default.setValue("theme", null, _SettingLevel.SettingLevel.DEVICE, newTheme), _SettingsStore.default.setValue("use_system_theme", null, _SettingLevel.SettingLevel.DEVICE, false)]); } } catch (_error) { _dispatcher.default.dispatch({ action: _actions.Action.RecheckTheme }); } requestClose(); }; return /*#__PURE__*/_react.default.createElement("div", { className: "mx_QuickThemeSwitcher" }, /*#__PURE__*/_react.default.createElement("h4", { className: "mx_QuickThemeSwitcher_heading" }, (0, _languageHandler._t)("common|theme")), /*#__PURE__*/_react.default.createElement(_Dropdown.default, { id: "mx_QuickSettingsButton_themePickerDropdown", onOptionChange: onOptionChange, value: selectedTheme, label: (0, _languageHandler._t)("common|theme") }, themeOptions.map(theme => /*#__PURE__*/_react.default.createElement("div", { key: theme.id }, theme.name)))); }; var _default = exports.default = QuickThemeSwitcher; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfbGFuZ3VhZ2VIYW5kbGVyIiwiX2FjdGlvbnMiLCJfdGhlbWUiLCJfRHJvcGRvd24iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1NldHRpbmdzU3RvcmUiLCJfU2V0dGluZ0xldmVsIiwiX2Rpc3BhdGNoZXIiLCJfUG9zdGhvZ1RyYWNrZXJzIiwiX3VzZVRoZW1lIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiTUFUQ0hfU1lTVEVNX1RIRU1FX0lEIiwiUXVpY2tUaGVtZVN3aXRjaGVyIiwicmVxdWVzdENsb3NlIiwib3JkZXJlZFRoZW1lcyIsInVzZU1lbW8iLCJnZXRPcmRlcmVkVGhlbWVzIiwidGhlbWVTdGF0ZSIsInVzZVRoZW1lIiwibm9uSGlnaENvbnRyYXN0IiwiZmluZE5vbkhpZ2hDb250cmFzdFRoZW1lIiwidGhlbWUiLCJzeXN0ZW1UaGVtZUFjdGl2YXRlZCIsInRoZW1lT3B0aW9ucyIsImlkIiwibmFtZSIsIl90Iiwic2VsZWN0ZWRUaGVtZSIsIm9uT3B0aW9uQ2hhbmdlIiwibmV3VGhlbWUiLCJQb3N0aG9nVHJhY2tlcnMiLCJ0cmFja0ludGVyYWN0aW9uIiwiU2V0dGluZ3NTdG9yZSIsInNldFZhbHVlIiwiU2V0dGluZ0xldmVsIiwiREVWSUNFIiwiZGlzIiwiZGlzcGF0Y2giLCJhY3Rpb24iLCJBY3Rpb24iLCJSZWNoZWNrVGhlbWUiLCJmb3JjZVRoZW1lIiwiUHJvbWlzZSIsImFsbCIsIl9lcnJvciIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJ2YWx1ZSIsImxhYmVsIiwibWFwIiwia2V5IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdmlld3Mvc3BhY2VzL1F1aWNrVGhlbWVTd2l0Y2hlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0IFJlYWN0LCB7IFJlYWN0RWxlbWVudCwgdXNlTWVtbyB9IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgeyBfdCB9IGZyb20gXCIuLi8uLi8uLi9sYW5ndWFnZUhhbmRsZXJcIjtcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gXCIuLi8uLi8uLi9kaXNwYXRjaGVyL2FjdGlvbnNcIjtcbmltcG9ydCB7IGZpbmROb25IaWdoQ29udHJhc3RUaGVtZSwgZ2V0T3JkZXJlZFRoZW1lcyB9IGZyb20gXCIuLi8uLi8uLi90aGVtZVwiO1xuaW1wb3J0IERyb3Bkb3duIGZyb20gXCIuLi9lbGVtZW50cy9Ecm9wZG93blwiO1xuaW1wb3J0IFNldHRpbmdzU3RvcmUgZnJvbSBcIi4uLy4uLy4uL3NldHRpbmdzL1NldHRpbmdzU3RvcmVcIjtcbmltcG9ydCB7IFNldHRpbmdMZXZlbCB9IGZyb20gXCIuLi8uLi8uLi9zZXR0aW5ncy9TZXR0aW5nTGV2ZWxcIjtcbmltcG9ydCBkaXMgZnJvbSBcIi4uLy4uLy4uL2Rpc3BhdGNoZXIvZGlzcGF0Y2hlclwiO1xuaW1wb3J0IHsgUmVjaGVja1RoZW1lUGF5bG9hZCB9IGZyb20gXCIuLi8uLi8uLi9kaXNwYXRjaGVyL3BheWxvYWRzL1JlY2hlY2tUaGVtZVBheWxvYWRcIjtcbmltcG9ydCBQb3N0aG9nVHJhY2tlcnMgZnJvbSBcIi4uLy4uLy4uL1Bvc3Rob2dUcmFja2Vyc1wiO1xuaW1wb3J0IHsgTm9uRW1wdHlBcnJheSB9IGZyb20gXCIuLi8uLi8uLi9AdHlwZXMvY29tbW9uXCI7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gXCIuLi8uLi8uLi9ob29rcy91c2VUaGVtZVwiO1xuXG50eXBlIFByb3BzID0ge1xuICAgIHJlcXVlc3RDbG9zZTogKCkgPT4gdm9pZDtcbn07XG5cbmNvbnN0IE1BVENIX1NZU1RFTV9USEVNRV9JRCA9IFwiTUFUQ0hfU1lTVEVNX1RIRU1FX0lEXCI7XG5cbmNvbnN0IFF1aWNrVGhlbWVTd2l0Y2hlcjogUmVhY3QuRkM8UHJvcHM+ID0gKHsgcmVxdWVzdENsb3NlIH0pID0+IHtcbiAgICBjb25zdCBvcmRlcmVkVGhlbWVzID0gdXNlTWVtbyhnZXRPcmRlcmVkVGhlbWVzLCBbXSk7XG5cbiAgICBjb25zdCB0aGVtZVN0YXRlID0gdXNlVGhlbWUoKTtcbiAgICBjb25zdCBub25IaWdoQ29udHJhc3QgPSBmaW5kTm9uSGlnaENvbnRyYXN0VGhlbWUodGhlbWVTdGF0ZS50aGVtZSk7XG4gICAgY29uc3QgdGhlbWUgPSBub25IaWdoQ29udHJhc3QgPyBub25IaWdoQ29udHJhc3QgOiB0aGVtZVN0YXRlLnRoZW1lO1xuICAgIGNvbnN0IHsgc3lzdGVtVGhlbWVBY3RpdmF0ZWQgfSA9IHRoZW1lU3RhdGU7XG5cbiAgICBjb25zdCB0aGVtZU9wdGlvbnMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGlkOiBNQVRDSF9TWVNURU1fVEhFTUVfSUQsXG4gICAgICAgICAgICBuYW1lOiBfdChcInRoZW1lfG1hdGNoX3N5c3RlbVwiKSxcbiAgICAgICAgfSxcbiAgICAgICAgLi4ub3JkZXJlZFRoZW1lcyxcbiAgICBdO1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRUaGVtZSA9IHN5c3RlbVRoZW1lQWN0aXZhdGVkID8gTUFUQ0hfU1lTVEVNX1RIRU1FX0lEIDogdGhlbWU7XG5cbiAgICBjb25zdCBvbk9wdGlvbkNoYW5nZSA9IGFzeW5jIChuZXdUaGVtZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICAgIFBvc3Rob2dUcmFja2Vycy50cmFja0ludGVyYWN0aW9uKFwiV2ViUXVpY2tTZXR0aW5nc1RoZW1lRHJvcGRvd25cIik7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChuZXdUaGVtZSA9PT0gTUFUQ0hfU1lTVEVNX1RIRU1FX0lEKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgU2V0dGluZ3NTdG9yZS5zZXRWYWx1ZShcInVzZV9zeXN0ZW1fdGhlbWVcIiwgbnVsbCwgU2V0dGluZ0xldmVsLkRFVklDRSwgdHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFRoZSBzZXR0aW5ncyB3YXRjaGVyIGRvZXNuJ3QgZmlyZSB1bnRpbCB0aGUgZWNobyBjb21lcyBiYWNrIGZyb20gdGhlXG4gICAgICAgICAgICAgICAgLy8gc2VydmVyLCBzbyB0byBtYWtlIHRoZSB0aGVtZSBjaGFuZ2UgaW1tZWRpYXRlbHkgd2UgbmVlZCB0byBtYW51YWxseVxuICAgICAgICAgICAgICAgIC8vIGRvIHRoZSBkaXNwYXRjaCBub3dcbiAgICAgICAgICAgICAgICAvLyBYWFg6IFRoZSBsb2NhbCBlY2hvZWQgdmFsdWUgYXBwZWFycyB0byBiZSB1bnJlbGlhYmxlLCBpbiBwYXJ0aWN1bGFyXG4gICAgICAgICAgICAgICAgLy8gd2hlbiBzZXR0aW5ncyBjdXN0b20gdGhlbWVzKCEpIHNvIGFkZGluZyBmb3JjZVRoZW1lIHRvIG92ZXJyaWRlXG4gICAgICAgICAgICAgICAgLy8gdGhlIHZhbHVlIGZyb20gc2V0dGluZ3MuXG4gICAgICAgICAgICAgICAgZGlzLmRpc3BhdGNoPFJlY2hlY2tUaGVtZVBheWxvYWQ+KHsgYWN0aW9uOiBBY3Rpb24uUmVjaGVja1RoZW1lLCBmb3JjZVRoZW1lOiBuZXdUaGVtZSB9KTtcbiAgICAgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICAgICAgICAgIFNldHRpbmdzU3RvcmUuc2V0VmFsdWUoXCJ0aGVtZVwiLCBudWxsLCBTZXR0aW5nTGV2ZWwuREVWSUNFLCBuZXdUaGVtZSksXG4gICAgICAgICAgICAgICAgICAgIFNldHRpbmdzU3RvcmUuc2V0VmFsdWUoXCJ1c2Vfc3lzdGVtX3RoZW1lXCIsIG51bGwsIFNldHRpbmdMZXZlbC5ERVZJQ0UsIGZhbHNlKSxcbiAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoX2Vycm9yKSB7XG4gICAgICAgICAgICBkaXMuZGlzcGF0Y2g8UmVjaGVja1RoZW1lUGF5bG9hZD4oeyBhY3Rpb246IEFjdGlvbi5SZWNoZWNrVGhlbWUgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXF1ZXN0Q2xvc2UoKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJteF9RdWlja1RoZW1lU3dpdGNoZXJcIj5cbiAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJteF9RdWlja1RoZW1lU3dpdGNoZXJfaGVhZGluZ1wiPntfdChcImNvbW1vbnx0aGVtZVwiKX08L2g0PlxuICAgICAgICAgICAgPERyb3Bkb3duXG4gICAgICAgICAgICAgICAgaWQ9XCJteF9RdWlja1NldHRpbmdzQnV0dG9uX3RoZW1lUGlja2VyRHJvcGRvd25cIlxuICAgICAgICAgICAgICAgIG9uT3B0aW9uQ2hhbmdlPXtvbk9wdGlvbkNoYW5nZX1cbiAgICAgICAgICAgICAgICB2YWx1ZT17c2VsZWN0ZWRUaGVtZX1cbiAgICAgICAgICAgICAgICBsYWJlbD17X3QoXCJjb21tb258dGhlbWVcIil9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0aGVtZU9wdGlvbnMubWFwKCh0aGVtZSkgPT4gPGRpdiBrZXk9e3RoZW1lLmlkfT57dGhlbWUubmFtZX08L2Rpdj4pIGFzIE5vbkVtcHR5QXJyYXk8XG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdEVsZW1lbnQgJiB7IGtleTogc3RyaW5nIH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvRHJvcGRvd24+XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBRdWlja1RoZW1lU3dpdGNoZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFRQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxnQkFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsUUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksU0FBQSxHQUFBQyxzQkFBQSxDQUFBTCxPQUFBO0FBQ0EsSUFBQU0sY0FBQSxHQUFBRCxzQkFBQSxDQUFBTCxPQUFBO0FBQ0EsSUFBQU8sYUFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsV0FBQSxHQUFBSCxzQkFBQSxDQUFBTCxPQUFBO0FBRUEsSUFBQVMsZ0JBQUEsR0FBQUosc0JBQUEsQ0FBQUwsT0FBQTtBQUVBLElBQUFVLFNBQUEsR0FBQVYsT0FBQTtBQUFtRCxTQUFBVyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBYix3QkFBQWEsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFBLFdBQUFLLE9B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