import React, {Component} from 'react'; import {FormattedMessage} from 'react-intl'; import {Icon, Row, Col, Input, Button, Spin} from 'antd'; import './index.css' import avatar from '../images/avatar.jpg'; import classnames from 'classnames'; import {Mutation, Query} from "react-apollo"; import {GET_USER, UPDATE_USER} from "../gql"; import gql from "graphql-tag"; import {getCookie} from "../cookie"; class AccountConfig extends Component { constructor(props) { super(props); this.state = { overNickname: false, editNickname: false, overTelephone: false, editTelephone: false, overEmail: false, editEmail: false, userID: '' }; } componentWillMount() { this.setState({ userID: getCookie('user_id') }) } cancelEdit = (kind) => { let key = `edit${kind[0].toUpperCase()}${kind.slice(1)}`; this.setState({ [key]: false }) }; render() { let {userID} = this.state; return ( { ({loading, error, data}) => { if (loading) { return } if (error) { return 'error!'; } if (data.user_by_id === null) { return (
{ this.props.history.push({ pathname: '/login', }) }}>
你还没有登录
) } else { return (
{ this.state.editNickname ? :
{ this.setState({overNickname: true}) }} onMouseLeave={() => { this.setState({overNickname: false}) }}> { data.user_by_id.nickname || 'please input' } { this.state.overNickname ? { this.setState({ editNickname: true, overNickname: false }) }}> : '' }
}
{ this.props.history.push({ pathname: '/login', }) }}>
{ this.state.editTelephone ? :
{ this.setState({overTelephone: true}) }} onMouseLeave={() => { this.setState({overTelephone: false}) }}> { data.user_by_id.telephone || 'please input' } { this.state.overTelephone ? { this.setState({ editTelephone: true, overTelephone: false }) }}> : '' }
}
{ this.state.editEmail ? :
{ this.setState({overEmail: true}) }} onMouseLeave={() => { this.setState({overEmail: false}) }}> { data.user_by_id.email || 'please input' } { this.state.overEmail ? { this.setState({ editEmail: true, overEmail: false }) }}> : '' }
}
) } } }
) } } export default AccountConfig; class EditNickname extends Component { constructor(props) { super(props); this.state = { nickname: this.props.data.nickname } } componentWillReceiveProps(next) { this.setState({ nickname: next.data.nickname }); } render() { let {email, telephone, openid, avatar} = this.props.data; return ( this.props.cancelEdit('nickname')} > {(update_schema, {loading, error}) => { if (loading) return ; if (error) return 'error'; let varObj = { id: this.props.userID, email, updatedAt: new Date().getTime(), telephone, openid, avatar, nickname: this.state.nickname }; return ( { this.setState({nickname: e.target.value}) }} value={this.state.nickname}/> ) }} ) } } class Edit extends Component { constructor(props) { super(props); this.state = { telephone: props.data.telephone, email: props.data.email, avatar: props.data.avatar, } } componentWillReceiveProps(next) { this.setState({ telephone: next.data.telephone, email: next.data.email, avatar: next.data.avatar, }); } render() { let {kind} = this.props; return ( this.props.cancelEdit(kind)} > {(update_schema, {loading, error}) => { if (loading) return ; if (error) return 'error'; let {email, telephone, openid, avatar, nickname} = this.props.data; let varObj = { id: this.props.userID, email, updatedAt: new Date().getTime(), telephone, openid, avatar, nickname }; return ( { this.setState({[kind]: e.target.value}) }} value={this.state[kind]}/> ) }} ) } }