mirror of
https://github.com/element-hq/element-web
synced 2024-11-28 12:28:50 +03:00
also allow passing a promise to a verif request to the verification dialog
This commit is contained in:
parent
f33c930c41
commit
91de7fd7b6
2 changed files with 16 additions and 7 deletions
|
@ -54,17 +54,18 @@ export default class NewSessionReviewDialog extends React.PureComponent {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
onContinueClick = async () => {
|
onContinueClick = () => {
|
||||||
const { userId, device } = this.props;
|
const { userId, device } = this.props;
|
||||||
const cli = MatrixClientPeg.get();
|
const cli = MatrixClientPeg.get();
|
||||||
const request = await cli.requestVerification(
|
const requestPromise = cli.requestVerification(
|
||||||
userId,
|
userId,
|
||||||
[device.deviceId],
|
[device.deviceId],
|
||||||
);
|
);
|
||||||
|
|
||||||
this.props.onFinished(true);
|
this.props.onFinished(true);
|
||||||
Modal.createTrackedDialog('New Session Verification', 'Starting dialog', VerificationRequestDialog, {
|
Modal.createTrackedDialog('New Session Verification', 'Starting dialog', VerificationRequestDialog, {
|
||||||
verificationRequest: request,
|
verificationRequestPromise: requestPromise,
|
||||||
|
member: cli.getUser(userId),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,8 @@ import { _t } from '../../../languageHandler';
|
||||||
|
|
||||||
export default class VerificationRequestDialog extends React.Component {
|
export default class VerificationRequestDialog extends React.Component {
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
verificationRequest: PropTypes.object.isRequired,
|
verificationRequest: PropTypes.object,
|
||||||
|
verificationRequestPromise: PropTypes.object,
|
||||||
onFinished: PropTypes.func.isRequired,
|
onFinished: PropTypes.func.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -34,6 +35,8 @@ export default class VerificationRequestDialog extends React.Component {
|
||||||
render() {
|
render() {
|
||||||
const BaseDialog = sdk.getComponent("views.dialogs.BaseDialog");
|
const BaseDialog = sdk.getComponent("views.dialogs.BaseDialog");
|
||||||
const EncryptionPanel = sdk.getComponent("views.right_panel.EncryptionPanel");
|
const EncryptionPanel = sdk.getComponent("views.right_panel.EncryptionPanel");
|
||||||
|
const member = this.props.member ||
|
||||||
|
MatrixClientPeg.get().getUser(this.props.verificationRequest.otherUserId);
|
||||||
return <BaseDialog className="mx_InfoDialog" onFinished={this.onFinished}
|
return <BaseDialog className="mx_InfoDialog" onFinished={this.onFinished}
|
||||||
contentId="mx_Dialog_content"
|
contentId="mx_Dialog_content"
|
||||||
title={_t("Verification Request")}
|
title={_t("Verification Request")}
|
||||||
|
@ -42,14 +45,19 @@ export default class VerificationRequestDialog extends React.Component {
|
||||||
<EncryptionPanel
|
<EncryptionPanel
|
||||||
layout="dialog"
|
layout="dialog"
|
||||||
verificationRequest={this.props.verificationRequest}
|
verificationRequest={this.props.verificationRequest}
|
||||||
|
verificationRequestPromise={this.props.verificationRequestPromise}
|
||||||
onClose={this.props.onFinished}
|
onClose={this.props.onFinished}
|
||||||
member={MatrixClientPeg.get().getUser(this.props.verificationRequest.otherUserId)}
|
member={member}
|
||||||
/>
|
/>
|
||||||
</BaseDialog>;
|
</BaseDialog>;
|
||||||
}
|
}
|
||||||
|
|
||||||
onFinished() {
|
async onFinished() {
|
||||||
this.props.verificationRequest.cancel();
|
|
||||||
this.props.onFinished();
|
this.props.onFinished();
|
||||||
|
let request = this.props.verificationRequest;
|
||||||
|
if (!request && this.props.verificationRequestPromise) {
|
||||||
|
request = await this.props.verificationRequestPromise;
|
||||||
|
}
|
||||||
|
request.cancel();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue