Complete change password functionality
This commit is contained in:
@@ -1,10 +1,76 @@
|
||||
import React, { Component } from "react";
|
||||
import { connect } from "react-redux";
|
||||
import { Container } from "semantic-ui-react";
|
||||
import { Container, Form, Header, Message, Segment } from "semantic-ui-react";
|
||||
|
||||
import {
|
||||
clearAuthRequestError,
|
||||
clearAuthRequestSuccess,
|
||||
setFormPassword,
|
||||
setFormPasswordConfirmation,
|
||||
setFormOldPassword
|
||||
} from "../../actions/auth/reducer.actions";
|
||||
import { sendChangePasswordRequest } from "../../actions/auth/saga.actions";
|
||||
import Error from "../Shared/Error";
|
||||
|
||||
class Settings extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.props.dispatch(clearAuthRequestError());
|
||||
this.props.dispatch(clearAuthRequestSuccess());
|
||||
}
|
||||
|
||||
changePassword = event => {
|
||||
this.props.dispatch(setFormPassword(event.target.value));
|
||||
};
|
||||
|
||||
changePasswordConfirmation = event => {
|
||||
this.props.dispatch(setFormPasswordConfirmation(event.target.value));
|
||||
};
|
||||
|
||||
changeOldPassword = event => {
|
||||
this.props.dispatch(setFormOldPassword(event.target.value));
|
||||
};
|
||||
|
||||
onSubmitChangePassword = event => {
|
||||
event.preventDefault();
|
||||
const {
|
||||
dispatch,
|
||||
password,
|
||||
passwordConfirmation,
|
||||
oldPassword
|
||||
} = this.props;
|
||||
dispatch(
|
||||
sendChangePasswordRequest({
|
||||
new_password1: password,
|
||||
new_password2: passwordConfirmation,
|
||||
old_password: oldPassword
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
render() {
|
||||
return <SettingsView />;
|
||||
const {
|
||||
isSendingAuthRequest,
|
||||
authRequestError,
|
||||
authRequestSuccess,
|
||||
password,
|
||||
passwordConfirmation,
|
||||
oldPassword
|
||||
} = this.props;
|
||||
return (
|
||||
<SettingsView
|
||||
isSendingAuthRequest={isSendingAuthRequest}
|
||||
authRequestError={authRequestError}
|
||||
authRequestSuccess={authRequestSuccess}
|
||||
password={password}
|
||||
passwordConfirmation={passwordConfirmation}
|
||||
oldPassword={oldPassword}
|
||||
changePassword={this.changePassword}
|
||||
changePasswordConfirmation={this.changePasswordConfirmation}
|
||||
changeOldPassword={this.changeOldPassword}
|
||||
onSubmitChangePassword={this.onSubmitChangePassword}
|
||||
/>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,10 +78,63 @@ function mapStateToProps(state) {
|
||||
return { ...state.auth };
|
||||
}
|
||||
|
||||
const SettingsView = () => (
|
||||
const SettingsView = ({
|
||||
isSendingAuthRequest,
|
||||
authRequestError,
|
||||
authRequestSuccess,
|
||||
password,
|
||||
passwordConfirmation,
|
||||
oldPassword,
|
||||
changePassword,
|
||||
changePasswordConfirmation,
|
||||
changeOldPassword,
|
||||
onSubmitChangePassword
|
||||
}) => (
|
||||
<Container>
|
||||
<h1>Settings</h1>
|
||||
<p>todo, change password</p>
|
||||
<Header>Settings</Header>
|
||||
<Header attached="top"> Change Password </Header>
|
||||
<Segment attached>
|
||||
<Form
|
||||
loading={isSendingAuthRequest}
|
||||
onSubmit={onSubmitChangePassword}
|
||||
error={!!authRequestError}
|
||||
success={!!authRequestSuccess}
|
||||
>
|
||||
<Form.Field>
|
||||
<label>Old Password</label>
|
||||
<input
|
||||
placeholder="••••••••"
|
||||
type="password"
|
||||
value={oldPassword}
|
||||
onChange={changeOldPassword}
|
||||
/>
|
||||
</Form.Field>
|
||||
<Form.Field>
|
||||
<label>New Password</label>
|
||||
<input
|
||||
placeholder="••••••••"
|
||||
type="password"
|
||||
value={password}
|
||||
onChange={changePassword}
|
||||
/>
|
||||
</Form.Field>
|
||||
<Form.Field>
|
||||
<label>Confirm New Password</label>
|
||||
<input
|
||||
placeholder="••••••••"
|
||||
type="password"
|
||||
value={passwordConfirmation}
|
||||
onChange={changePasswordConfirmation}
|
||||
/>
|
||||
</Form.Field>
|
||||
<Error header="Change Password failed!" error={authRequestError} />
|
||||
<Message success>
|
||||
<Message.Header>Password Successfully Changed!</Message.Header>
|
||||
<p>New password has been set.</p>
|
||||
</Message>
|
||||
<Form.Button>Change Password</Form.Button>
|
||||
</Form>
|
||||
</Segment>
|
||||
</Container>
|
||||
);
|
||||
|
||||
|
Reference in New Issue
Block a user