ListCell.js 2.23 KB
'use strict';

import React, {Component} from 'react';
import Immutable, {Map} from 'immutable';

import ReactNative, {
    View,
    Text,
    Image,
    ListView,
    StyleSheet,
    Dimensions,
    TouchableOpacity,
    InteractionManager,
    Platform,
} from 'react-native';



export default class ListCell extends Component {

    constructor(props) {
        super(props);
    }


    render() {
        let data = this.props.resource;
        if (!data) {
            return null;
        }
         let {
             default_images,
             product_skn,
             phrase,
             product_name,
         } = data;
         default_images = default_images.replace('{width}', 240).replace('{height}', 320).replace('{mode}',2);
        return (
            <TouchableOpacity style={styles.container} onPress={() => {this.props.onPressDetail && this.props.onPressDetail(product_skn,this.props.index)}}>
            <View style={styles.container}>
                <Image style={styles.image} source={{uri:default_images}}/>

                <View style={styles.rightPannel}>
                    <Text numberOfLines={2} style={styles.title}>{product_name}</Text>
                    <Text numberOfLines={4} style={styles.phrase}>{phrase}</Text>
                </View>
            </View>
            </TouchableOpacity>
        );
    }
}

let {width, height} = Dimensions.get('window');

let styles = StyleSheet.create({
    container: {
        width: width,
        flexDirection: 'row',
        height: 180,
    },

    image: {
        marginTop: 10,
        marginLeft: 15,
        marginRight: 15,
        width: 120,
        height: 160,
        backgroundColor: '#e0e0e0',
    },

    rightPannel: {
        width: width - 150,
        height: 180,
        flexDirection: 'column',
        borderColor: '#ededed',
        borderBottomWidth: 1,
    },

    title: {
        fontSize: 15,
        width: width - 150 - 15,
        marginTop: 20,
        marginBottom: 0,
        color: '#444444',
        fontWeight: 'bold',
        // backgroundColor: 'red',
    },

    phrase: {
        marginTop: 10,
        width: width - 150 - 15,
        fontSize: 13,
        color: '#b0b0b0',
        lineHeight: 20,
        // backgroundColor: 'red',
    },
});