import React, {Component} from 'react';
import {StyleSheet, Text, View} from 'react-native';
import moment from 'moment';

import Color from '../../style/color';
import UserIcon from '../userIcon';
import Photo from '../photo';

import CommentIcon from '../comment/commentIcon';
import DiaryActionIcon from './diaryActionIcon';


export default class DiaryBrief extends Component {

    render() {
      let diary = this.props.diary;
      let user = diary.user;
      let editable = this.props.editable;

      return (
        <View style={[localStyle.box, this.props.style]}>
            {(user && user.iconUrl)
                ? <UserIcon iconUrl={user.iconUrl}></UserIcon> : null}

            <View style={localStyle.body}>
                <View style={localStyle.title}>
                    {(user && user.name) 
                    ? ( <Text style={localStyle.titleName} numberOfLines={1}>
                            {user.name}
                        </Text>
                    ) : null}
                    {(user && user.name)
                    ? ( <Text style={[localStyle.titleText, {flex: 1}]} numberOfLines={1}>
                            《{diary.notebook_subject}》
                        </Text>
                    ) : null}
                    <Text style={localStyle.titleText}>
                        {moment(diary.created).format('H:mm')}
                    </Text>
                </View>

                <Text style={localStyle.content} numberOfLines={5}>
                    {diary.content.trim()}
                </Text>

                <Photo uri={diary.photoThumbUrl}></Photo>

                <View style={localStyle.actionBar}>
                    {
                        diary.comment_count > 0
                        ? <CommentIcon count={diary.comment_count}></CommentIcon>
                        : null
                    }
                    <View style={{flex: 1}} />
                    {
                        editable
                        ? <DiaryActionIcon></DiaryActionIcon>
                        : null
                    }
                </View>
            </View>
            
        </View>
      );
    }
}

const localStyle = StyleSheet.create({
    box: {
        flexDirection: "row",
        overflow: "hidden",
        paddingHorizontal: 15,
        paddingTop: 15
    },
    body: {
        flexDirection: "column",
        flexGrow: 1,
        flexShrink: 1,
        paddingTop: 2,
        paddingBottom: 5
    },
    title: {
        flexDirection: "row",
        alignItems: "flex-end",
        paddingBottom: 5
    },
    titleName: {
        fontWeight: 'bold',
        color: Color.text,
        fontSize: 14
    },
    titleText: {
        fontSize: 12,
        color: Color.inactiveText
    },
    content: {
        flexGrow: 1,
        lineHeight: 24,
        color: Color.text,
        fontSize: 15,
        textAlignVertical: 'bottom'
    },
    actionBar: {
        flexDirection: 'row',
        alignItems: "center",
        width: '100%',
        height: 30,
        marginTop: 10,
        justifyContent: 'space-between'
    }
});