matrix-react-sdk
Version:
SDK for matrix.org using React
83 lines (79 loc) • 8.8 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.VectorState = exports.PushRuleVectorState = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _StandardActions = require("./StandardActions");
var _NotificationUtils = require("./NotificationUtils");
/*
Copyright 2024 New Vector Ltd.
Copyright 2016-2021 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.
*/
let VectorState = exports.VectorState = /*#__PURE__*/function (VectorState) {
VectorState["Off"] = "off";
VectorState["On"] = "on";
VectorState["Loud"] = "loud";
return VectorState;
}({});
class PushRuleVectorState {
/**
* Convert a PushRuleVectorState to a list of actions
*
* @return [object] list of push-rule actions
*/
static actionsFor(pushRuleVectorState) {
if (pushRuleVectorState === VectorState.On) {
return _StandardActions.StandardActions.ACTION_NOTIFY;
} else if (pushRuleVectorState === VectorState.Loud) {
return _StandardActions.StandardActions.ACTION_HIGHLIGHT_DEFAULT_SOUND;
}
return [];
}
/**
* Convert a pushrule's actions to a PushRuleVectorState.
*
* Determines whether a content rule is in the PushRuleVectorState.ON
* category or in PushRuleVectorState.LOUD, regardless of its enabled
* state. Returns null if it does not match these categories.
*/
static contentRuleVectorStateKind(rule) {
const decoded = _NotificationUtils.NotificationUtils.decodeActions(rule.actions);
if (!decoded) {
return null;
}
// Count tweaks to determine if it is a ON or LOUD rule
let tweaks = 0;
if (decoded.sound) {
tweaks++;
}
if (decoded.highlight) {
tweaks++;
}
let stateKind = null;
switch (tweaks) {
case 0:
stateKind = VectorState.On;
break;
case 2:
stateKind = VectorState.Loud;
break;
}
return stateKind;
}
}
exports.PushRuleVectorState = PushRuleVectorState;
// Backwards compatibility (things should probably be using the enum above instead)
(0, _defineProperty2.default)(PushRuleVectorState, "OFF", VectorState.Off);
(0, _defineProperty2.default)(PushRuleVectorState, "ON", VectorState.On);
(0, _defineProperty2.default)(PushRuleVectorState, "LOUD", VectorState.Loud);
/**
* Enum for state of a push rule as defined by the Vector UI.
* @readonly
* @enum {string}
*/
(0, _defineProperty2.default)(PushRuleVectorState, "states", VectorState);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfU3RhbmRhcmRBY3Rpb25zIiwicmVxdWlyZSIsIl9Ob3RpZmljYXRpb25VdGlscyIsIlZlY3RvclN0YXRlIiwiZXhwb3J0cyIsIlB1c2hSdWxlVmVjdG9yU3RhdGUiLCJhY3Rpb25zRm9yIiwicHVzaFJ1bGVWZWN0b3JTdGF0ZSIsIk9uIiwiU3RhbmRhcmRBY3Rpb25zIiwiQUNUSU9OX05PVElGWSIsIkxvdWQiLCJBQ1RJT05fSElHSExJR0hUX0RFRkFVTFRfU09VTkQiLCJjb250ZW50UnVsZVZlY3RvclN0YXRlS2luZCIsInJ1bGUiLCJkZWNvZGVkIiwiTm90aWZpY2F0aW9uVXRpbHMiLCJkZWNvZGVBY3Rpb25zIiwiYWN0aW9ucyIsInR3ZWFrcyIsInNvdW5kIiwiaGlnaGxpZ2h0Iiwic3RhdGVLaW5kIiwiX2RlZmluZVByb3BlcnR5MiIsImRlZmF1bHQiLCJPZmYiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbm90aWZpY2F0aW9ucy9QdXNoUnVsZVZlY3RvclN0YXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE2LTIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0IHsgSVB1c2hSdWxlLCBQdXNoUnVsZUFjdGlvbiB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9tYXRyaXhcIjtcblxuaW1wb3J0IHsgU3RhbmRhcmRBY3Rpb25zIH0gZnJvbSBcIi4vU3RhbmRhcmRBY3Rpb25zXCI7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25VdGlscyB9IGZyb20gXCIuL05vdGlmaWNhdGlvblV0aWxzXCI7XG5cbmV4cG9ydCBlbnVtIFZlY3RvclN0YXRlIHtcbiAgICAvKiogVGhlIHB1c2ggcnVsZSBpcyBkaXNhYmxlZCAqL1xuICAgIE9mZiA9IFwib2ZmXCIsXG4gICAgLyoqIFRoZSB1c2VyIHdpbGwgcmVjZWl2ZSBwdXNoIG5vdGlmaWNhdGlvbiBmb3IgdGhpcyBydWxlICovXG4gICAgT24gPSBcIm9uXCIsXG4gICAgLyoqIFRoZSB1c2VyIHdpbGwgcmVjZWl2ZSBwdXNoIG5vdGlmaWNhdGlvbiBmb3IgdGhpcyBydWxlIHdpdGggc291bmQgYW5kXG4gICAgIGhpZ2hsaWdodCBpZiB0aGlzIGlzIGxlZ2l0aW1hdGUgKi9cbiAgICBMb3VkID0gXCJsb3VkXCIsXG59XG5cbmV4cG9ydCBjbGFzcyBQdXNoUnVsZVZlY3RvclN0YXRlIHtcbiAgICAvLyBCYWNrd2FyZHMgY29tcGF0aWJpbGl0eSAodGhpbmdzIHNob3VsZCBwcm9iYWJseSBiZSB1c2luZyB0aGUgZW51bSBhYm92ZSBpbnN0ZWFkKVxuICAgIHB1YmxpYyBzdGF0aWMgT0ZGID0gVmVjdG9yU3RhdGUuT2ZmO1xuICAgIHB1YmxpYyBzdGF0aWMgT04gPSBWZWN0b3JTdGF0ZS5PbjtcbiAgICBwdWJsaWMgc3RhdGljIExPVUQgPSBWZWN0b3JTdGF0ZS5Mb3VkO1xuXG4gICAgLyoqXG4gICAgICogRW51bSBmb3Igc3RhdGUgb2YgYSBwdXNoIHJ1bGUgYXMgZGVmaW5lZCBieSB0aGUgVmVjdG9yIFVJLlxuICAgICAqIEByZWFkb25seVxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBzdGF0ZXMgPSBWZWN0b3JTdGF0ZTtcblxuICAgIC8qKlxuICAgICAqIENvbnZlcnQgYSBQdXNoUnVsZVZlY3RvclN0YXRlIHRvIGEgbGlzdCBvZiBhY3Rpb25zXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIFtvYmplY3RdIGxpc3Qgb2YgcHVzaC1ydWxlIGFjdGlvbnNcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGFjdGlvbnNGb3IocHVzaFJ1bGVWZWN0b3JTdGF0ZT86IFZlY3RvclN0YXRlKTogUHVzaFJ1bGVBY3Rpb25bXSB7XG4gICAgICAgIGlmIChwdXNoUnVsZVZlY3RvclN0YXRlID09PSBWZWN0b3JTdGF0ZS5Pbikge1xuICAgICAgICAgICAgcmV0dXJuIFN0YW5kYXJkQWN0aW9ucy5BQ1RJT05fTk9USUZZO1xuICAgICAgICB9IGVsc2UgaWYgKHB1c2hSdWxlVmVjdG9yU3RhdGUgPT09IFZlY3RvclN0YXRlLkxvdWQpIHtcbiAgICAgICAgICAgIHJldHVybiBTdGFuZGFyZEFjdGlvbnMuQUNUSU9OX0hJR0hMSUdIVF9ERUZBVUxUX1NPVU5EO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IGEgcHVzaHJ1bGUncyBhY3Rpb25zIHRvIGEgUHVzaFJ1bGVWZWN0b3JTdGF0ZS5cbiAgICAgKlxuICAgICAqIERldGVybWluZXMgd2hldGhlciBhIGNvbnRlbnQgcnVsZSBpcyBpbiB0aGUgUHVzaFJ1bGVWZWN0b3JTdGF0ZS5PTlxuICAgICAqIGNhdGVnb3J5IG9yIGluIFB1c2hSdWxlVmVjdG9yU3RhdGUuTE9VRCwgcmVnYXJkbGVzcyBvZiBpdHMgZW5hYmxlZFxuICAgICAqIHN0YXRlLiBSZXR1cm5zIG51bGwgaWYgaXQgZG9lcyBub3QgbWF0Y2ggdGhlc2UgY2F0ZWdvcmllcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGNvbnRlbnRSdWxlVmVjdG9yU3RhdGVLaW5kKHJ1bGU6IElQdXNoUnVsZSk6IFZlY3RvclN0YXRlIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGRlY29kZWQgPSBOb3RpZmljYXRpb25VdGlscy5kZWNvZGVBY3Rpb25zKHJ1bGUuYWN0aW9ucyk7XG5cbiAgICAgICAgaWYgKCFkZWNvZGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENvdW50IHR3ZWFrcyB0byBkZXRlcm1pbmUgaWYgaXQgaXMgYSBPTiBvciBMT1VEIHJ1bGVcbiAgICAgICAgbGV0IHR3ZWFrcyA9IDA7XG4gICAgICAgIGlmIChkZWNvZGVkLnNvdW5kKSB7XG4gICAgICAgICAgICB0d2Vha3MrKztcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVjb2RlZC5oaWdobGlnaHQpIHtcbiAgICAgICAgICAgIHR3ZWFrcysrO1xuICAgICAgICB9XG4gICAgICAgIGxldCBzdGF0ZUtpbmQ6IFZlY3RvclN0YXRlIHwgbnVsbCA9IG51bGw7XG4gICAgICAgIHN3aXRjaCAodHdlYWtzKSB7XG4gICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgc3RhdGVLaW5kID0gVmVjdG9yU3RhdGUuT247XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgc3RhdGVLaW5kID0gVmVjdG9yU3RhdGUuTG91ZDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3RhdGVLaW5kO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFVQSxJQUFBQSxnQkFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsa0JBQUEsR0FBQUQsT0FBQTtBQVhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkEsSUFhWUUsV0FBVyxHQUFBQyxPQUFBLENBQUFELFdBQUEsMEJBQVhBLFdBQVc7RUFBWEEsV0FBVztFQUFYQSxXQUFXO0VBQVhBLFdBQVc7RUFBQSxPQUFYQSxXQUFXO0FBQUE7QUFVaEIsTUFBTUUsbUJBQW1CLENBQUM7RUFhN0I7QUFDSjtBQUNBO0FBQ0E7QUFDQTtFQUNJLE9BQWNDLFVBQVVBLENBQUNDLG1CQUFpQyxFQUFvQjtJQUMxRSxJQUFJQSxtQkFBbUIsS0FBS0osV0FBVyxDQUFDSyxFQUFFLEVBQUU7TUFDeEMsT0FBT0MsZ0NBQWUsQ0FBQ0MsYUFBYTtJQUN4QyxDQUFDLE1BQU0sSUFBSUgsbUJBQW1CLEtBQUtKLFdBQVcsQ0FBQ1EsSUFBSSxFQUFFO01BQ2pELE9BQU9GLGdDQUFlLENBQUNHLDhCQUE4QjtJQUN6RDtJQUNBLE9BQU8sRUFBRTtFQUNiOztFQUVBO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0ksT0FBY0MsMEJBQTBCQSxDQUFDQyxJQUFlLEVBQXNCO0lBQzFFLE1BQU1DLE9BQU8sR0FBR0Msb0NBQWlCLENBQUNDLGFBQWEsQ0FBQ0gsSUFBSSxDQUFDSSxPQUFPLENBQUM7SUFFN0QsSUFBSSxDQUFDSCxPQUFPLEVBQUU7TUFDVixPQUFPLElBQUk7SUFDZjs7SUFFQTtJQUNBLElBQUlJLE1BQU0sR0FBRyxDQUFDO0lBQ2QsSUFBSUosT0FBTyxDQUFDSyxLQUFLLEVBQUU7TUFDZkQsTUFBTSxFQUFFO0lBQ1o7SUFDQSxJQUFJSixPQUFPLENBQUNNLFNBQVMsRUFBRTtNQUNuQkYsTUFBTSxFQUFFO0lBQ1o7SUFDQSxJQUFJRyxTQUE2QixHQUFHLElBQUk7SUFDeEMsUUFBUUgsTUFBTTtNQUNWLEtBQUssQ0FBQztRQUNGRyxTQUFTLEdBQUduQixXQUFXLENBQUNLLEVBQUU7UUFDMUI7TUFDSixLQUFLLENBQUM7UUFDRmMsU0FBUyxHQUFHbkIsV0FBVyxDQUFDUSxJQUFJO1FBQzVCO0lBQ1I7SUFDQSxPQUFPVyxTQUFTO0VBQ3BCO0FBQ0o7QUFBQ2xCLE9BQUEsQ0FBQUMsbUJBQUEsR0FBQUEsbUJBQUE7QUEzREc7QUFBQSxJQUFBa0IsZ0JBQUEsQ0FBQUMsT0FBQSxFQURTbkIsbUJBQW1CLFNBRVJGLFdBQVcsQ0FBQ3NCLEdBQUc7QUFBQSxJQUFBRixnQkFBQSxDQUFBQyxPQUFBLEVBRjFCbkIsbUJBQW1CLFFBR1RGLFdBQVcsQ0FBQ0ssRUFBRTtBQUFBLElBQUFlLGdCQUFBLENBQUFDLE9BQUEsRUFIeEJuQixtQkFBbUIsVUFJUEYsV0FBVyxDQUFDUSxJQUFJO0FBRXJDO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFKSSxJQUFBWSxnQkFBQSxDQUFBQyxPQUFBLEVBTlNuQixtQkFBbUIsWUFXTEYsV0FBVyIsImlnbm9yZUxpc3QiOltdfQ==