You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
1.9 KiB
76 lines
1.9 KiB
import React, { Component } from "react"; |
|
import { connect } from "react-redux"; |
|
|
|
import { |
|
clearUserRequestError, |
|
clearUserRequestSuccess, |
|
setFormPhoneNumber |
|
} from "../../actions/user/reducer.actions"; |
|
import { |
|
createUserInfoRequest, |
|
updateUserInfoRequest |
|
} from "../../actions/user/saga.actions"; |
|
|
|
import UserInfoFormView from "./UserInfoFormView"; |
|
|
|
class InitializeUserInfoForm extends Component { |
|
componentWillMount() { |
|
this.props.dispatch(clearUserRequestError()); |
|
this.props.dispatch(clearUserRequestSuccess()); |
|
} |
|
|
|
changePhoneNumber = event => { |
|
this.props.dispatch(setFormPhoneNumber(event.target.value)); |
|
}; |
|
|
|
onSubmitUserInfo = event => { |
|
event.preventDefault(); |
|
const { selfUser, phoneNumber } = this.props; |
|
const phoneNumberVal = |
|
phoneNumber || (selfUser.userinfo || {}).phone_number; |
|
|
|
if (selfUser.userinfo) { |
|
this.props.dispatch( |
|
updateUserInfoRequest({ |
|
...selfUser.userinfo, |
|
username: selfUser.username, |
|
phone_number: phoneNumberVal |
|
}) |
|
); |
|
} else { |
|
this.props.dispatch( |
|
createUserInfoRequest({ |
|
phone_number: phoneNumberVal |
|
}) |
|
); |
|
} |
|
}; |
|
|
|
render() { |
|
const { |
|
isSendingUserRequest, |
|
userRequestError, |
|
userRequestSuccess, |
|
selfUser, |
|
phoneNumber |
|
} = this.props; |
|
const phoneNumberVal = |
|
phoneNumber || (selfUser.userinfo || {}).phone_number; |
|
return ( |
|
<UserInfoFormView |
|
isSendingUserRequest={isSendingUserRequest} |
|
userRequestError={userRequestError} |
|
userRequestSuccess={userRequestSuccess} |
|
phoneNumber={phoneNumberVal} |
|
changePhoneNumber={this.changePhoneNumber} |
|
onSubmitUserInfo={this.onSubmitUserInfo} |
|
/> |
|
); |
|
} |
|
} |
|
|
|
function mapStateToProps(state) { |
|
return { ...state.user }; |
|
} |
|
|
|
export default connect(mapStateToProps)(InitializeUserInfoForm);
|
|
|