matrix-react-sdk
Version:
SDK for matrix.org using React
132 lines (108 loc) • 12.3 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.E2E_STATE = void 0;
var _react = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _classnames = _interopRequireDefault(require("classnames"));
var _languageHandler = require("../../../languageHandler");
var _AccessibleButton = _interopRequireDefault(require("../elements/AccessibleButton"));
var _Tooltip = _interopRequireDefault(require("../elements/Tooltip"));
/*
Copyright 2019 New Vector Ltd
Copyright 2020 The Matrix.org Foundation C.I.C.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
const E2E_STATE = {
VERIFIED: "verified",
WARNING: "warning",
UNKNOWN: "unknown",
NORMAL: "normal",
UNAUTHENTICATED: "unauthenticated"
};
exports.E2E_STATE = E2E_STATE;
const crossSigningUserTitles = {
[E2E_STATE.WARNING]: (0, _languageHandler._td)("This user has not verified all of their sessions."),
[E2E_STATE.NORMAL]: (0, _languageHandler._td)("You have not verified this user."),
[E2E_STATE.VERIFIED]: (0, _languageHandler._td)("You have verified this user. This user has verified all of their sessions.")
};
const crossSigningRoomTitles = {
[E2E_STATE.WARNING]: (0, _languageHandler._td)("Someone is using an unknown session"),
[E2E_STATE.NORMAL]: (0, _languageHandler._td)("This room is end-to-end encrypted"),
[E2E_STATE.VERIFIED]: (0, _languageHandler._td)("Everyone in this room is verified")
};
const E2EIcon = ({
isUser,
status,
className,
size,
onClick,
hideTooltip,
bordered
}) => {
const [hover, setHover] = (0, _react.useState)(false);
const classes = (0, _classnames.default)({
mx_E2EIcon: true,
mx_E2EIcon_bordered: bordered,
mx_E2EIcon_warning: status === E2E_STATE.WARNING,
mx_E2EIcon_normal: status === E2E_STATE.NORMAL,
mx_E2EIcon_verified: status === E2E_STATE.VERIFIED
}, className);
let e2eTitle;
if (isUser) {
e2eTitle = crossSigningUserTitles[status];
} else {
e2eTitle = crossSigningRoomTitles[status];
}
let style;
if (size) {
style = {
width: `${size}px`,
height: `${size}px`
};
}
const onMouseOver = () => setHover(true);
const onMouseLeave = () => setHover(false);
let tip;
if (hover && !hideTooltip) {
tip = /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
label: e2eTitle ? (0, _languageHandler._t)(e2eTitle) : ""
});
}
if (onClick) {
return /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, {
onClick: onClick,
onMouseOver: onMouseOver,
onMouseLeave: onMouseLeave,
className: classes,
style: style
}, tip);
}
return /*#__PURE__*/_react.default.createElement("div", {
onMouseOver: onMouseOver,
onMouseLeave: onMouseLeave,
className: classes,
style: style
}, tip);
};
E2EIcon.propTypes = {
isUser: _propTypes.default.bool,
status: _propTypes.default.oneOf(Object.values(E2E_STATE)),
className: _propTypes.default.string,
size: _propTypes.default.number,
onClick: _propTypes.default.func
};
var _default = E2EIcon;
exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdzL3Jvb21zL0UyRUljb24uanMiXSwibmFtZXMiOlsiRTJFX1NUQVRFIiwiVkVSSUZJRUQiLCJXQVJOSU5HIiwiVU5LTk9XTiIsIk5PUk1BTCIsIlVOQVVUSEVOVElDQVRFRCIsImNyb3NzU2lnbmluZ1VzZXJUaXRsZXMiLCJjcm9zc1NpZ25pbmdSb29tVGl0bGVzIiwiRTJFSWNvbiIsImlzVXNlciIsInN0YXR1cyIsImNsYXNzTmFtZSIsInNpemUiLCJvbkNsaWNrIiwiaGlkZVRvb2x0aXAiLCJib3JkZXJlZCIsImhvdmVyIiwic2V0SG92ZXIiLCJjbGFzc2VzIiwibXhfRTJFSWNvbiIsIm14X0UyRUljb25fYm9yZGVyZWQiLCJteF9FMkVJY29uX3dhcm5pbmciLCJteF9FMkVJY29uX25vcm1hbCIsIm14X0UyRUljb25fdmVyaWZpZWQiLCJlMmVUaXRsZSIsInN0eWxlIiwid2lkdGgiLCJoZWlnaHQiLCJvbk1vdXNlT3ZlciIsIm9uTW91c2VMZWF2ZSIsInRpcCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsImJvb2wiLCJvbmVPZiIsIk9iamVjdCIsInZhbHVlcyIsInN0cmluZyIsIm51bWJlciIsImZ1bmMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBaUJBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQXZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVVPLE1BQU1BLFNBQVMsR0FBRztBQUNyQkMsRUFBQUEsUUFBUSxFQUFFLFVBRFc7QUFFckJDLEVBQUFBLE9BQU8sRUFBRSxTQUZZO0FBR3JCQyxFQUFBQSxPQUFPLEVBQUUsU0FIWTtBQUlyQkMsRUFBQUEsTUFBTSxFQUFFLFFBSmE7QUFLckJDLEVBQUFBLGVBQWUsRUFBRTtBQUxJLENBQWxCOztBQVFQLE1BQU1DLHNCQUFzQixHQUFHO0FBQzNCLEdBQUNOLFNBQVMsQ0FBQ0UsT0FBWCxHQUFxQiwwQkFBSSxtREFBSixDQURNO0FBRTNCLEdBQUNGLFNBQVMsQ0FBQ0ksTUFBWCxHQUFvQiwwQkFBSSxrQ0FBSixDQUZPO0FBRzNCLEdBQUNKLFNBQVMsQ0FBQ0MsUUFBWCxHQUFzQiwwQkFBSSw0RUFBSjtBQUhLLENBQS9CO0FBS0EsTUFBTU0sc0JBQXNCLEdBQUc7QUFDM0IsR0FBQ1AsU0FBUyxDQUFDRSxPQUFYLEdBQXFCLDBCQUFJLHFDQUFKLENBRE07QUFFM0IsR0FBQ0YsU0FBUyxDQUFDSSxNQUFYLEdBQW9CLDBCQUFJLG1DQUFKLENBRk87QUFHM0IsR0FBQ0osU0FBUyxDQUFDQyxRQUFYLEdBQXNCLDBCQUFJLG1DQUFKO0FBSEssQ0FBL0I7O0FBTUEsTUFBTU8sT0FBTyxHQUFHLENBQUM7QUFBQ0MsRUFBQUEsTUFBRDtBQUFTQyxFQUFBQSxNQUFUO0FBQWlCQyxFQUFBQSxTQUFqQjtBQUE0QkMsRUFBQUEsSUFBNUI7QUFBa0NDLEVBQUFBLE9BQWxDO0FBQTJDQyxFQUFBQSxXQUEzQztBQUF3REMsRUFBQUE7QUFBeEQsQ0FBRCxLQUF1RTtBQUNuRixRQUFNLENBQUNDLEtBQUQsRUFBUUMsUUFBUixJQUFvQixxQkFBUyxLQUFULENBQTFCO0FBRUEsUUFBTUMsT0FBTyxHQUFHLHlCQUFXO0FBQ3ZCQyxJQUFBQSxVQUFVLEVBQUUsSUFEVztBQUV2QkMsSUFBQUEsbUJBQW1CLEVBQUVMLFFBRkU7QUFHdkJNLElBQUFBLGtCQUFrQixFQUFFWCxNQUFNLEtBQUtWLFNBQVMsQ0FBQ0UsT0FIbEI7QUFJdkJvQixJQUFBQSxpQkFBaUIsRUFBRVosTUFBTSxLQUFLVixTQUFTLENBQUNJLE1BSmpCO0FBS3ZCbUIsSUFBQUEsbUJBQW1CLEVBQUViLE1BQU0sS0FBS1YsU0FBUyxDQUFDQztBQUxuQixHQUFYLEVBTWJVLFNBTmEsQ0FBaEI7QUFRQSxNQUFJYSxRQUFKOztBQUNBLE1BQUlmLE1BQUosRUFBWTtBQUNSZSxJQUFBQSxRQUFRLEdBQUdsQixzQkFBc0IsQ0FBQ0ksTUFBRCxDQUFqQztBQUNILEdBRkQsTUFFTztBQUNIYyxJQUFBQSxRQUFRLEdBQUdqQixzQkFBc0IsQ0FBQ0csTUFBRCxDQUFqQztBQUNIOztBQUVELE1BQUllLEtBQUo7O0FBQ0EsTUFBSWIsSUFBSixFQUFVO0FBQ05hLElBQUFBLEtBQUssR0FBRztBQUFDQyxNQUFBQSxLQUFLLEVBQUcsR0FBRWQsSUFBSyxJQUFoQjtBQUFxQmUsTUFBQUEsTUFBTSxFQUFHLEdBQUVmLElBQUs7QUFBckMsS0FBUjtBQUNIOztBQUVELFFBQU1nQixXQUFXLEdBQUcsTUFBTVgsUUFBUSxDQUFDLElBQUQsQ0FBbEM7O0FBQ0EsUUFBTVksWUFBWSxHQUFHLE1BQU1aLFFBQVEsQ0FBQyxLQUFELENBQW5DOztBQUVBLE1BQUlhLEdBQUo7O0FBQ0EsTUFBSWQsS0FBSyxJQUFJLENBQUNGLFdBQWQsRUFBMkI7QUFDdkJnQixJQUFBQSxHQUFHLGdCQUFHLDZCQUFDLGdCQUFEO0FBQVMsTUFBQSxLQUFLLEVBQUVOLFFBQVEsR0FBRyx5QkFBR0EsUUFBSCxDQUFILEdBQWtCO0FBQTFDLE1BQU47QUFDSDs7QUFFRCxNQUFJWCxPQUFKLEVBQWE7QUFDVCx3QkFDSSw2QkFBQyx5QkFBRDtBQUNJLE1BQUEsT0FBTyxFQUFFQSxPQURiO0FBRUksTUFBQSxXQUFXLEVBQUVlLFdBRmpCO0FBR0ksTUFBQSxZQUFZLEVBQUVDLFlBSGxCO0FBSUksTUFBQSxTQUFTLEVBQUVYLE9BSmY7QUFLSSxNQUFBLEtBQUssRUFBRU87QUFMWCxPQU9NSyxHQVBOLENBREo7QUFXSDs7QUFFRCxzQkFBTztBQUFLLElBQUEsV0FBVyxFQUFFRixXQUFsQjtBQUErQixJQUFBLFlBQVksRUFBRUMsWUFBN0M7QUFBMkQsSUFBQSxTQUFTLEVBQUVYLE9BQXRFO0FBQStFLElBQUEsS0FBSyxFQUFFTztBQUF0RixLQUNESyxHQURDLENBQVA7QUFHSCxDQWhERDs7QUFrREF0QixPQUFPLENBQUN1QixTQUFSLEdBQW9CO0FBQ2hCdEIsRUFBQUEsTUFBTSxFQUFFdUIsbUJBQVVDLElBREY7QUFFaEJ2QixFQUFBQSxNQUFNLEVBQUVzQixtQkFBVUUsS0FBVixDQUFnQkMsTUFBTSxDQUFDQyxNQUFQLENBQWNwQyxTQUFkLENBQWhCLENBRlE7QUFHaEJXLEVBQUFBLFNBQVMsRUFBRXFCLG1CQUFVSyxNQUhMO0FBSWhCekIsRUFBQUEsSUFBSSxFQUFFb0IsbUJBQVVNLE1BSkE7QUFLaEJ6QixFQUFBQSxPQUFPLEVBQUVtQixtQkFBVU87QUFMSCxDQUFwQjtlQVFlL0IsTyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAxOSBOZXcgVmVjdG9yIEx0ZFxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbnlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbllvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cblVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbmRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbldJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxubGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4qL1xuXG5pbXBvcnQgUmVhY3QsIHt1c2VTdGF0ZX0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCI7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcblxuaW1wb3J0IHtfdCwgX3RkfSBmcm9tICcuLi8uLi8uLi9sYW5ndWFnZUhhbmRsZXInO1xuaW1wb3J0IEFjY2Vzc2libGVCdXR0b24gZnJvbSBcIi4uL2VsZW1lbnRzL0FjY2Vzc2libGVCdXR0b25cIjtcbmltcG9ydCBUb29sdGlwIGZyb20gXCIuLi9lbGVtZW50cy9Ub29sdGlwXCI7XG5cbmV4cG9ydCBjb25zdCBFMkVfU1RBVEUgPSB7XG4gICAgVkVSSUZJRUQ6IFwidmVyaWZpZWRcIixcbiAgICBXQVJOSU5HOiBcIndhcm5pbmdcIixcbiAgICBVTktOT1dOOiBcInVua25vd25cIixcbiAgICBOT1JNQUw6IFwibm9ybWFsXCIsXG4gICAgVU5BVVRIRU5USUNBVEVEOiBcInVuYXV0aGVudGljYXRlZFwiLFxufTtcblxuY29uc3QgY3Jvc3NTaWduaW5nVXNlclRpdGxlcyA9IHtcbiAgICBbRTJFX1NUQVRFLldBUk5JTkddOiBfdGQoXCJUaGlzIHVzZXIgaGFzIG5vdCB2ZXJpZmllZCBhbGwgb2YgdGhlaXIgc2Vzc2lvbnMuXCIpLFxuICAgIFtFMkVfU1RBVEUuTk9STUFMXTogX3RkKFwiWW91IGhhdmUgbm90IHZlcmlmaWVkIHRoaXMgdXNlci5cIiksXG4gICAgW0UyRV9TVEFURS5WRVJJRklFRF06IF90ZChcIllvdSBoYXZlIHZlcmlmaWVkIHRoaXMgdXNlci4gVGhpcyB1c2VyIGhhcyB2ZXJpZmllZCBhbGwgb2YgdGhlaXIgc2Vzc2lvbnMuXCIpLFxufTtcbmNvbnN0IGNyb3NzU2lnbmluZ1Jvb21UaXRsZXMgPSB7XG4gICAgW0UyRV9TVEFURS5XQVJOSU5HXTogX3RkKFwiU29tZW9uZSBpcyB1c2luZyBhbiB1bmtub3duIHNlc3Npb25cIiksXG4gICAgW0UyRV9TVEFURS5OT1JNQUxdOiBfdGQoXCJUaGlzIHJvb20gaXMgZW5kLXRvLWVuZCBlbmNyeXB0ZWRcIiksXG4gICAgW0UyRV9TVEFURS5WRVJJRklFRF06IF90ZChcIkV2ZXJ5b25lIGluIHRoaXMgcm9vbSBpcyB2ZXJpZmllZFwiKSxcbn07XG5cbmNvbnN0IEUyRUljb24gPSAoe2lzVXNlciwgc3RhdHVzLCBjbGFzc05hbWUsIHNpemUsIG9uQ2xpY2ssIGhpZGVUb29sdGlwLCBib3JkZXJlZH0pID0+IHtcbiAgICBjb25zdCBbaG92ZXIsIHNldEhvdmVyXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc05hbWVzKHtcbiAgICAgICAgbXhfRTJFSWNvbjogdHJ1ZSxcbiAgICAgICAgbXhfRTJFSWNvbl9ib3JkZXJlZDogYm9yZGVyZWQsXG4gICAgICAgIG14X0UyRUljb25fd2FybmluZzogc3RhdHVzID09PSBFMkVfU1RBVEUuV0FSTklORyxcbiAgICAgICAgbXhfRTJFSWNvbl9ub3JtYWw6IHN0YXR1cyA9PT0gRTJFX1NUQVRFLk5PUk1BTCxcbiAgICAgICAgbXhfRTJFSWNvbl92ZXJpZmllZDogc3RhdHVzID09PSBFMkVfU1RBVEUuVkVSSUZJRUQsXG4gICAgfSwgY2xhc3NOYW1lKTtcblxuICAgIGxldCBlMmVUaXRsZTtcbiAgICBpZiAoaXNVc2VyKSB7XG4gICAgICAgIGUyZVRpdGxlID0gY3Jvc3NTaWduaW5nVXNlclRpdGxlc1tzdGF0dXNdO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGUyZVRpdGxlID0gY3Jvc3NTaWduaW5nUm9vbVRpdGxlc1tzdGF0dXNdO1xuICAgIH1cblxuICAgIGxldCBzdHlsZTtcbiAgICBpZiAoc2l6ZSkge1xuICAgICAgICBzdHlsZSA9IHt3aWR0aDogYCR7c2l6ZX1weGAsIGhlaWdodDogYCR7c2l6ZX1weGB9O1xuICAgIH1cblxuICAgIGNvbnN0IG9uTW91c2VPdmVyID0gKCkgPT4gc2V0SG92ZXIodHJ1ZSk7XG4gICAgY29uc3Qgb25Nb3VzZUxlYXZlID0gKCkgPT4gc2V0SG92ZXIoZmFsc2UpO1xuXG4gICAgbGV0IHRpcDtcbiAgICBpZiAoaG92ZXIgJiYgIWhpZGVUb29sdGlwKSB7XG4gICAgICAgIHRpcCA9IDxUb29sdGlwIGxhYmVsPXtlMmVUaXRsZSA/IF90KGUyZVRpdGxlKSA6IFwiXCJ9IC8+O1xuICAgIH1cblxuICAgIGlmIChvbkNsaWNrKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8QWNjZXNzaWJsZUJ1dHRvblxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICAgICAgICAgICAgb25Nb3VzZU92ZXI9e29uTW91c2VPdmVyfVxuICAgICAgICAgICAgICAgIG9uTW91c2VMZWF2ZT17b25Nb3VzZUxlYXZlfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlc31cbiAgICAgICAgICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgeyB0aXAgfVxuICAgICAgICAgICAgPC9BY2Nlc3NpYmxlQnV0dG9uPlxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiA8ZGl2IG9uTW91c2VPdmVyPXtvbk1vdXNlT3Zlcn0gb25Nb3VzZUxlYXZlPXtvbk1vdXNlTGVhdmV9IGNsYXNzTmFtZT17Y2xhc3Nlc30gc3R5bGU9e3N0eWxlfT5cbiAgICAgICAgeyB0aXAgfVxuICAgIDwvZGl2Pjtcbn07XG5cbkUyRUljb24ucHJvcFR5cGVzID0ge1xuICAgIGlzVXNlcjogUHJvcFR5cGVzLmJvb2wsXG4gICAgc3RhdHVzOiBQcm9wVHlwZXMub25lT2YoT2JqZWN0LnZhbHVlcyhFMkVfU1RBVEUpKSxcbiAgICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgc2l6ZTogUHJvcFR5cGVzLm51bWJlcixcbiAgICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEUyRUljb247XG4iXX0=