UserCenterTop.js 3.26 KB
'use strict';

import React from 'react';
import ReactNative from 'react-native';
import ImmutablePropTypes from 'react-immutable-proptypes';


const {
    View,
    Image,
    Text,
    StyleSheet,
    Dimensions,
    Platform,
    TouchableOpacity,
    TouchableHighlight,
} = ReactNative;

export default class UserCenterTop extends React.Component {


    static propTypes = {
        backgroundImage: React.PropTypes.string,
        avatar: React.PropTypes.string,
        name: React.PropTypes.string.isRequired,
        sign: React.PropTypes.string,

        onPressUserAvatar: React.PropTypes.func,
        onPressBackgroundImg: React.PropTypes.func,
    };

    constructor(props) {
        super (props);
    }

    render() {
        console.log('userinfo = ' + this.props.userInfo);
        let data = this.props.userInfo;
        let {backgroundImage, avatar, name, sign,} = data;
        return (


            <View style={styles.container}>
                <TouchableHighlight
                    underlayColor={'transparent'}
                    onPress={() => {
                        this.props.onPressBackgroundImg && this.props.onPressBackgroundImg();
                    }}

                >
                    <Image
                        style={styles.backgroundImage}
                        source={backgroundImage}
                    >

                        <TouchableOpacity
                            onPress={() => {
                                this.props.onPressUserAvatar && this.props.onPressUserAvatar();
                            }}
                        >
                            <Image
                                style={styles.avatarImage}
                                source={avatar}
                            >

                            </Image>

                        </TouchableOpacity>

                        <Text
                            style={styles.name}
                        >
                        {name}
                        </Text>

                        <Text
                            style={styles.sign}
                        >
                        {sign}
                        </Text>
                    </Image>

                </TouchableHighlight>
            </View>
        );

    }
}

let {width, height} = Dimensions.get('window');
let navbarHeight = (Platform.OS === 'android') ? 50 : 64;

let styles = StyleSheet.create({
    container: {

        height: 244,
        backgroundColor: 'transparent',
    },

    backgroundImage: {
        // top: 0,
        flex: 1,
        flexDirection: 'column',
        justifyContent: 'center',
         alignItems: 'center',
        // alignItems: 'center'
    },

    avatarImage: {
        marginTop: 50,
        width: 74,
        height: 74,
        borderRadius: 37,
        borderColor: 'white',
        borderWidth: 1,
        backgroundColor: 'white'
    },

    name: {
        color: 'white',
        textAlign: 'center',
        margin: 15,
        marginBottom:10,
        // backgroundColor:'red',
        fontSize: 14,
        fontFamily: 'Helvetica Light',
    },

    sign: {
        color: 'white',
        textAlign: 'center',
        // margin: 15,
        // backgroundColor:'red',
        fontSize: 12,
        fontFamily: 'Helvetica Light',
    }

});