ReplyList.js 2.34 KB
'use strict';

import React from 'react';
import ReactNative from 'react-native';
import ReplyCell from './ReplyCell';

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

export default class ReplyList extends React.Component {
    constructor(props) {
        super(props);
        this._renderRow = this._renderRow.bind(this);
        this._renderSeparator = this._renderSeparator.bind(this);
        this.dataSource = new ListView.DataSource({
            rowHasChanged: (r1, r2) => !Immutable.is(r1, r2),
            sectionHeaderHasChanged: (s1, s2) => !Immutable.is(s1, s2),
        });
    }


    _renderRow(rowData, sectionID, rowID, highlightRow) {
        return (
            <ReplyCell
                key={sectionID + rowID}
                data={rowData}
                // onPressPost={(url) => {
                //     this.props.onPressPost && this.props.onPressPost(url);
                // }}
                onPressAvatar={() => {
                    this.props.onPressAvatar && this.props.onPressAvatar();
                }}

                onPressReply={() => {
                    this.props.onPressReply && this.props.onPressReply(rowData.get('replyToUser').get('uid'));
                }}
                onPressPost={() => {
                    this.props.onPressPost && this.props.onPressPost(rowData.get('postInfo').get('postId'));
                }}
                // onPressLike={(url) => {
                //     this.props.onPressLike && this.props.onPressLike(url);
                // }}
            />
        );
    }

    _renderSeparator(sectionID, rowID, adjacentRowHighlighted) {
        return (
            <View key={'separator' + sectionID + rowID} style={styles.separator}/>
        );
    }

    render() {
        let data = this.props.data.toArray();
        return (
            <ListView
                dataSource={this.dataSource.cloneWithRows(data)}
                renderRow={this._renderRow}
                renderSectionHeader={this._renderSectionHeader}
                renderSeparator={this._renderSeparator}
                enableEmptySections={true}
                scrollEnabled={false}
            />
        );

    }


}


let styles = StyleSheet.create({

    separator: {
        height: 0.5,
        backgroundColor: '#e0e0e0',
    },
});