show unknown devices dialog when clicking e2e warning in room header

pull/21833/head
Bruno Windels 2019-02-12 18:43:28 +01:00
parent 3b10b8042a
commit 2f345401c4
2 changed files with 12 additions and 2 deletions

View File

@ -16,6 +16,7 @@ limitations under the License.
import classNames from 'classnames'; import classNames from 'classnames';
import { _t } from '../../../languageHandler'; import { _t } from '../../../languageHandler';
import AccessibleButton from '../elements/AccessibleButton';
export default function(props) { export default function(props) {
const isWarning = props.status === "warning"; const isWarning = props.status === "warning";
@ -35,5 +36,7 @@ export default function(props) {
_t("All devices for this user are trusted") : _t("All devices for this user are trusted") :
_t("All devices in this encrypted room are trusted"); _t("All devices in this encrypted room are trusted");
} }
return (<div className={e2eIconClasses} title={e2eTitle} />); return (<AccessibleButton onClick={props.onClick}>
<div className={e2eIconClasses} title={e2eTitle} />
</AccessibleButton>);
} }

View File

@ -32,6 +32,7 @@ import {CancelButton} from './SimpleRoomHeader';
import SettingsStore from "../../../settings/SettingsStore"; import SettingsStore from "../../../settings/SettingsStore";
import RoomHeaderButtons from '../right_panel/RoomHeaderButtons'; import RoomHeaderButtons from '../right_panel/RoomHeaderButtons';
import E2EIcon from './E2EIcon'; import E2EIcon from './E2EIcon';
import * as cryptodevices from '../../../cryptodevices';
module.exports = React.createClass({ module.exports = React.createClass({
displayName: 'RoomHeader', displayName: 'RoomHeader',
@ -145,6 +146,12 @@ module.exports = React.createClass({
return !(currentPinEvent.getContent().pinned && currentPinEvent.getContent().pinned.length <= 0); return !(currentPinEvent.getContent().pinned && currentPinEvent.getContent().pinned.length <= 0);
}, },
_onShowDevicesClick: function() {
if (this.props.e2eStatus === "warning") {
cryptodevices.showUnknownDeviceDialogForMessages(MatrixClientPeg.get(), this.props.room);
}
},
render: function() { render: function() {
const RoomAvatar = sdk.getComponent("avatars.RoomAvatar"); const RoomAvatar = sdk.getComponent("avatars.RoomAvatar");
const TintableSvg = sdk.getComponent("elements.TintableSvg"); const TintableSvg = sdk.getComponent("elements.TintableSvg");
@ -156,7 +163,7 @@ module.exports = React.createClass({
let pinnedEventsButton = null; let pinnedEventsButton = null;
const e2eIcon = this.props.e2eStatus ? const e2eIcon = this.props.e2eStatus ?
<E2EIcon status={this.props.e2eStatus} /> : <E2EIcon status={this.props.e2eStatus} onClick={this._onShowDevicesClick} /> :
undefined; undefined;
if (this.props.onCancelClick) { if (this.props.onCancelClick) {