// Edit account parameters. import React from 'react'; import { FormattedMessage, defineMessages, injectIntl } from 'react-intl'; import InPlaceEdit from '../widgets/in-place-edit.jsx'; import PermissionsEditor from '../widgets/permissions-editor.jsx'; const messages = defineMessages({ delete_account: { id: 'delete_account', defaultMessage: 'Delete account', description: 'Title for delete account warning' }, delete_account_warning: { id: 'delete_account_warning', defaultMessage: 'Are you sure you want to delete your account? It cannot be undone.', description: 'Warning message when deleting an account' } }); class AccSecurityView extends React.Component { constructor(props) { super(props); const me = this.props.tinode.getMeTopic(); let blockedCount = 0; me.contacts((c) => { if (c.acs && !c.acs.isJoiner()) { blockedCount ++; } }); const defacs = me.getDefaultAccess(); this.state = { auth: defacs ? defacs.auth : null, anon: defacs ? defacs.anon : null, showPermissionEditorFor: undefined, blockedCount: blockedCount, }; this.handlePasswordUpdate = this.handlePasswordUpdate.bind(this); this.handleLaunchPermissionsEditor = this.handleLaunchPermissionsEditor.bind(this); this.handleHidePermissionsEditor = this.handleHidePermissionsEditor.bind(this); this.handlePermissionsChanged = this.handlePermissionsChanged.bind(this); this.handleDeleteAccount = this.handleDeleteAccount.bind(this); } handlePasswordUpdate(pwd) { this.setState({password: pwd}); this.props.onUpdatePassword(pwd); } handleLaunchPermissionsEditor(which) { this.setState({ showPermissionEditorFor: which, editedPermissions: this.state[which] }); } handleHidePermissionsEditor() { this.setState({showPermissionEditorFor: undefined}); } handlePermissionsChanged(perm) { let defacs = {}; defacs[this.state.showPermissionEditorFor] = perm; this.props.onUpdateAccountDesc('me', undefined, undefined, defacs); let newState = {showPermissionEditorFor: undefined}; newState[this.state.showPermissionEditorFor] = perm; this.setState(newState); } handleDeleteAccount(e) { e.preventDefault(); const {formatMessage} = this.props.intl; this.props.onShowAlert( formatMessage(messages.delete_account), // title formatMessage(messages.delete_account_warning), // content (() => { this.props.onDeleteAccount(); }), // onConfirm null, // use default text "OK" true, // Show Reject button null // use default text "Cancel" ); } render() { return ( <>{this.state.showPermissionEditorFor ? :
{ (password_unchanged) => }
{e.preventDefault(); this.props.onLogout();}}> exit_to_app   {this.handleDeleteAccount(e);}}> delete  
Auth: {this.state.auth}
Anon: {this.state.anon}
{this.state.blockedCount > 0 ? <>
: null }
} ); } }; export default injectIntl(AccSecurityView);