import React from 'react' import PropTypes from 'prop-types' import { autoBind } from 'auto-bind2' import { Modal, Button, Icon, Column, Row, Text, BoundInput, BoundButton } from 'ui' import { FormBinder } from 'react-form-binder' export class ChangePasswordModal extends React.Component { static propTypes = { open: PropTypes.bool, onDismiss: PropTypes.func } static bindings = { oldPassword: { alwaysGet: true, isValid: (r, v) => (v !== '') }, newPassword: { alwaysGet: true, isValid: (r, v) => (v !== '' && v !== r.fields.oldPassword.value) }, reenteredNewPassword: { alwaysGet: true, isValid: (r, v) => (v !== '' && v === r.fields.newPassword.value) }, submit: { isDisabled: (r) => (!r.allValid), noValue: true } } constructor(props) { super(props) autoBind(this, (name) => (name.startsWith('handle'))) this.state = { binder: new FormBinder({}, ChangePasswordModal.bindings) } } close(passwords) { this.state.binder = new FormBinder({}, ChangePasswordModal.bindings) this.props.onDismiss(passwords) } handleClose() { close(null) } handleSubmit(e) { e.preventDefault() let passwords = null if (this.state.binder.allValid) { const oldPassword = this.state.binder.getField('oldPassword').value const newPassword = this.state.binder.getField('newPassword').value passwords = { oldPassword, newPassword } } this.close(passwords) } handleClick(e) { this.close(null) } render() { return (
Change Password OK
) } }