Add confirmation dialog before transferring account data

pull/21833/head
Jason Robinson 2020-12-11 16:25:22 +02:00
parent 518c4c5dc9
commit 04bd5f648f
2 changed files with 59 additions and 6 deletions

View File

@ -0,0 +1,45 @@
/*
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.
*/
import React from 'react';
import QuestionDialog from './QuestionDialog';
import { _t } from "../../../languageHandler";
import { IDialogProps } from "./IDialogProps";
interface IProps extends IDialogProps {
onFinished(): void;
}
interface IState {}
/*
* A dialog for confirming closing the Hosting signup setup dialog.
*/
export default class HostingSignupAccountDataConfirmDialog extends React.PureComponent<IProps, IState> {
public render() {
return (
<QuestionDialog
onFinished={this.props.onFinished}
title={_t("Confirm Account Data Transfer")}
description={
"Please accept transfer of data to the Element Pro setup wizard to continue. The setup wizard" +
"will be able to access your account for the duration of the setup process."
}
button={_t("Accept")}
/>
);
}
}

View File

@ -15,7 +15,9 @@ limitations under the License.
*/ */
import * as React from "react"; import * as React from "react";
import * as sdk from '../../../index'; import BaseDialog from '../../views/dialogs/BaseDialog';
import ConfirmCloseHostingSignupDialog from '../../views/dialogs/ConfirmCloseHostingSignupDialog';
import HostingSignupAccountDataConfirmDialog from '../../views/dialogs/HostingSignupAccountDataConfirmDialog';
import Modal from "../../../Modal"; import Modal from "../../../Modal";
import SdkConfig from "../../../SdkConfig"; import SdkConfig from "../../../SdkConfig";
import { _t } from "../../../languageHandler"; import { _t } from "../../../languageHandler";
@ -53,8 +55,16 @@ export default class HostingSignupDialog extends React.PureComponent<IProps, ISt
} }
switch (message.data.action) { switch (message.data.action) {
case 'element_pro_account_details_request': case 'element_pro_account_details_request':
// noinspection JSIgnoredPromiseFromCall Modal.createDialog(
this.sendAccountDetails(); HostingSignupAccountDataConfirmDialog,
{
onFinished: result => {
if (result) {
return this.sendAccountDetails();
}
},
},
);
break; break;
case 'setup_complete': case 'setup_complete':
// Set as completed but let the user close the modal themselves // Set as completed but let the user close the modal themselves
@ -74,9 +84,8 @@ export default class HostingSignupDialog extends React.PureComponent<IProps, ISt
// We're done, close // We're done, close
this.props.requestClose(); this.props.requestClose();
} else { } else {
const ConfirmDialog = sdk.getComponent('views.dialogs.ConfirmCloseHostingSignupDialog');
Modal.createDialog( Modal.createDialog(
ConfirmDialog, ConfirmCloseHostingSignupDialog,
{ {
onFinished: result => { onFinished: result => {
if (result) { if (result) {
@ -124,7 +133,6 @@ export default class HostingSignupDialog extends React.PureComponent<IProps, ISt
} }
public render(): React.ReactNode { public render(): React.ReactNode {
const BaseDialog = sdk.getComponent('views.dialogs.BaseDialog');
return ( return (
<BaseDialog <BaseDialog
className="mx_HostingSignupBaseDialog" className="mx_HostingSignupBaseDialog"