member modify
This commit is contained in:
		
							parent
							
								
									989dff32bb
								
							
						
					
					
						commit
						fbfbdaede5
					
				| @ -47,7 +47,7 @@ export interface RPCConfig { | ||||
|   url: string; | ||||
| } | ||||
| const rpcConfig: RPCConfig = { | ||||
|   url: 'ws://127.0.0.1:18081/rpc', | ||||
|   url: 'ws://192.168.1.209:18081/rpc', | ||||
| }; | ||||
| 
 | ||||
| // Redux Configuration
 | ||||
|  | ||||
| @ -12,6 +12,7 @@ import SignUp from '../member/SignUp'; | ||||
| import EmailConfirm from '../member/EmailConfirm'; | ||||
| import ForgotPassword from '../member/ForgotPassword'; | ||||
| import PWConfirm from '../member/PWConfirm'; | ||||
| import Modify from '../member/Modify'; | ||||
| 
 | ||||
| export interface Props extends RouteComponentProps<any> { | ||||
| } | ||||
| @ -40,6 +41,7 @@ class AccountLayout extends React.Component<Props, State> { | ||||
|               <Route path={`${this.props.match.url}/pw_confirm`} component={PWConfirm}/> | ||||
|               <Route path={`${this.props.match.url}/check_email`} component={EmailConfirm}/> | ||||
|               <Route path={`${this.props.match.url}/forgot_password`} component={ForgotPassword}/> | ||||
|               <Route path={`${this.props.match.url}/modify`} component={Modify}/> | ||||
|             </Switch> | ||||
|           </Segment> | ||||
|         </Grid.Column> | ||||
|  | ||||
| @ -123,6 +123,9 @@ class LeftMenu extends React.Component<Props, State> { | ||||
|             <Menu.Item onClick={(e) => this.props.onChangeUrl('/account/pw_confirm')} style={{ 'marginLeft': '30px' }}> | ||||
|               PW Confirm | ||||
|             </Menu.Item> | ||||
|             <Menu.Item onClick={(e) => this.props.onChangeUrl('/account/modify')} style={{ 'marginLeft': '30px' }}> | ||||
|               Modify | ||||
|             </Menu.Item> | ||||
|             <Menu.Item onClick={(e) => this.props.onChangeUrl('/account/logout')} style={{ 'marginLeft': '30px' }}> | ||||
|               Log Out | ||||
|             </Menu.Item> | ||||
|  | ||||
							
								
								
									
										27
									
								
								src/ts/@overflow/app/views/member/Modify.tsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								src/ts/@overflow/app/views/member/Modify.tsx
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,27 @@ | ||||
| import * as React from 'react'; | ||||
| import { RouteComponentProps } from 'react-router'; | ||||
| import ModifyContainer from '@overflow/member/react/Modify'; | ||||
| 
 | ||||
| export interface Props { | ||||
| } | ||||
| export interface State { | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| class Modify extends React.Component<RouteComponentProps<Props>, State> { | ||||
| 
 | ||||
|   public constructor(props?: RouteComponentProps<Props>, context?: State) { | ||||
|     super(props, context); | ||||
| 
 | ||||
|   } | ||||
| 
 | ||||
|   public render(): JSX.Element { | ||||
|     return ( | ||||
|       <ModifyContainer /> | ||||
|     ); | ||||
|   } | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| export default Modify; | ||||
| @ -8,7 +8,7 @@ export interface State { | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| class SignIUp extends React.Component<RouteComponentProps<Props>, State> { | ||||
| class SignUp extends React.Component<RouteComponentProps<Props>, State> { | ||||
| 
 | ||||
|   public constructor(props?: RouteComponentProps<Props>, context?: State) { | ||||
|     super(props, context); | ||||
| @ -24,4 +24,4 @@ class SignIUp extends React.Component<RouteComponentProps<Props>, State> { | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| export default SignIUp; | ||||
| export default SignUp; | ||||
|  | ||||
							
								
								
									
										37
									
								
								src/ts/@overflow/member/react/Modify.tsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								src/ts/@overflow/member/react/Modify.tsx
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,37 @@ | ||||
| import { connect, Dispatch } from 'react-redux'; | ||||
| import Member from '../api/model/Member'; | ||||
| 
 | ||||
| import { | ||||
|   Modify, | ||||
|   StateProps as ModifyStateProps, | ||||
|   DispatchProps as ModifyDispatchProps, | ||||
| } from './components/Modify'; | ||||
| import State from '../redux/state/Modify'; | ||||
| 
 | ||||
| import * as asyncRequestActions from '@overflow/commons/redux/action/asyncRequest'; | ||||
| import { push as routerPush } from 'react-router-redux'; | ||||
| import * as modifyActions from '../redux/action/modify'; | ||||
| 
 | ||||
| 
 | ||||
| export function mapStateToProps(state: any): ModifyStateProps { | ||||
|   return { | ||||
|     member: state.member, | ||||
|   }; | ||||
| } | ||||
| 
 | ||||
| export function mapDispatchToProps(dispatch: Dispatch<any>): ModifyDispatchProps { | ||||
|   return { | ||||
|     onModify: (member: Member) => { | ||||
|       dispatch(asyncRequestActions.request('MemberService', 'modify', modifyActions.REQUEST, JSON.stringify(member))); | ||||
|       // dispatch(signupActions.request(member));
 | ||||
|     }, | ||||
|     onReadMember: (id: Number) => { | ||||
|       dispatch(asyncRequestActions.request('MemberService', 'read', modifyActions.REQUEST, id)); | ||||
|     }, | ||||
|     onRedirectHome: () => { | ||||
|       dispatch(routerPush('/')); | ||||
|     }, | ||||
|   }; | ||||
| } | ||||
| 
 | ||||
| export default connect(mapStateToProps, mapDispatchToProps)(Modify); | ||||
							
								
								
									
										133
									
								
								src/ts/@overflow/member/react/components/Modify.tsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										133
									
								
								src/ts/@overflow/member/react/components/Modify.tsx
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,133 @@ | ||||
| import *as React from 'react'; | ||||
| import Member from '../../api/model/Member'; | ||||
| 
 | ||||
| import { | ||||
|   InputOnChangeData, | ||||
|   Button, | ||||
|   Form, | ||||
|   ButtonProps, | ||||
| } from 'semantic-ui-react'; | ||||
| import MemberStatus from '../../api/model/MemberStatus'; | ||||
| 
 | ||||
| export interface StateProps { | ||||
|   member?:Member; | ||||
| } | ||||
| 
 | ||||
| export interface DispatchProps { | ||||
|   onModify?(member: Member): void; | ||||
|   onReadMember?(id: Number): void; | ||||
|   onRedirectHome():void; | ||||
| } | ||||
| 
 | ||||
| export type Props = StateProps & DispatchProps; | ||||
| 
 | ||||
| export interface State { | ||||
|   email: string; | ||||
|   name: string; | ||||
|   pass: string; | ||||
|   passCon: string; | ||||
|   company: string; | ||||
|   phone: string; | ||||
|   country: string; | ||||
| } | ||||
| 
 | ||||
| const options = [ | ||||
|   { key: 'southkorea', value: '82', text: 'South Korea(82)' }, | ||||
|   { key: 'unitedstates', value: '1', text: 'United States(1)' }, | ||||
| ]; | ||||
| 
 | ||||
| 
 | ||||
| export class Modify extends React.Component<Props, State> { | ||||
|   constructor(props?: Props, context?: State) { | ||||
|     super(props, context); | ||||
| 
 | ||||
|     this.state = { | ||||
|       email: null, | ||||
|       name: null, | ||||
|       pass: null, | ||||
|       passCon: null, | ||||
|       company: null, | ||||
|       phone: null, | ||||
|       country: null, | ||||
|     }; | ||||
| 
 | ||||
|   } | ||||
| 
 | ||||
|   public componentWillMount(): void { | ||||
|     // Todo session get id
 | ||||
|     this.props.onReadMember(1); | ||||
|   } | ||||
| 
 | ||||
|   public onChange (event: React.SyntheticEvent<HTMLInputElement>, data: InputOnChangeData):void { | ||||
|     console.log(event); | ||||
|     console.log(data); | ||||
|   } | ||||
| 
 | ||||
|   public render(): JSX.Element { | ||||
| 
 | ||||
|     let modifyElement = <Form> | ||||
|       <Form.Input fluid value={this.state.email} placeholder='Email' disabled/> | ||||
|       <Form.Input fluid placeholder='Name' onChange= { | ||||
|         (event: React.SyntheticEvent<HTMLInputElement>, data: InputOnChangeData) => { | ||||
|           this.setState({ name: data.value }); | ||||
|         } | ||||
|       }/> | ||||
|       <Form.Input fluid placeholder='Password' type='password' onChange={ | ||||
|         (event: React.SyntheticEvent<HTMLInputElement>, data: InputOnChangeData) => { | ||||
|           this.setState({ pass: data.value }); | ||||
|         } | ||||
|       } /> | ||||
|       <Form.Input fluid placeholder='Password Confirm' type='password' onChange={ | ||||
|         (event: React.SyntheticEvent<HTMLInputElement>, data: InputOnChangeData) => { | ||||
|           this.setState({ passCon: data.value }); | ||||
|         } | ||||
|       } /> | ||||
|       <Form.Input fluid placeholder='Company' value={this.state.company} onChange={ | ||||
|         (event: React.SyntheticEvent<HTMLInputElement>, data: InputOnChangeData) => { | ||||
|           this.setState({ company: data.value }); | ||||
|         } | ||||
|       }/> | ||||
|       <Form.Select fluid value={this.state.country}  placeholder='Select your country' options={options} onChange={ | ||||
|         (event: React.SyntheticEvent<HTMLInputElement>, data: InputOnChangeData) => { | ||||
|           this.setState({ country: data.value }); | ||||
|         } | ||||
|       } /> | ||||
|       <Form.Input fluid placeholder='phone' value={this.state.phone} onChange={ | ||||
|         (event: React.SyntheticEvent<HTMLInputElement>, data: InputOnChangeData) => { | ||||
|           this.setState({ phone: data.value }); | ||||
|         } | ||||
|       } /> | ||||
|       <Form.Group> | ||||
|         <Button primary fluid style={{margin:'7'}} onClick={this.modifyClick}>   Modify  </Button> | ||||
|         <Button fluid style={{margin:'7'}}>    Cancel  </Button> | ||||
|       </Form.Group> | ||||
|     </Form>; | ||||
|     // if (this.props.member !== undefined && this.props.member.id > 0) {
 | ||||
|       // Todo Please check the member registration e-mail.
 | ||||
|       // this.props.onRedirectHome();
 | ||||
|     // } else {
 | ||||
|     return modifyElement; | ||||
|     // }
 | ||||
| 
 | ||||
|   } | ||||
| 
 | ||||
|   private modifyClick = (event: React.SyntheticEvent<HTMLButtonElement>, data: ButtonProps):void => { | ||||
| 
 | ||||
|     let member:Member = {}; | ||||
|     member.pw = this.state.pass; | ||||
| 
 | ||||
|     if (member.pw !== this.state.passCon) { | ||||
|       return; | ||||
|     } | ||||
| 
 | ||||
|     member.email = this.state.email; | ||||
|     member.name = this.state.name; | ||||
|     member.companyName = this.state.company; | ||||
|     member.phone = this.state.phone; | ||||
|     // member.status = MemberStatus.NOAUTH;
 | ||||
| 
 | ||||
|     this.props.onModify(member); | ||||
|   } | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| @ -1,3 +1,19 @@ | ||||
| /** | ||||
|  * Created by geek on 17. 7. 3. | ||||
|  */ | ||||
| 
 | ||||
| import Member from '../../api/model/Member'; | ||||
| 
 | ||||
| export interface State { | ||||
|   readonly isModify?: boolean; | ||||
|   readonly member?: Member; | ||||
|   readonly error?: Error; | ||||
| } | ||||
| 
 | ||||
| export const defaultState: State = { | ||||
|   isModify: undefined, | ||||
|   member: undefined, | ||||
|   error: undefined, | ||||
| }; | ||||
| 
 | ||||
| export default State; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user