import React, { Component } from 'react'; import { StyleSheet, TouchableOpacity, Text, Image, View } from 'react-native'; import AuctionPriceAndBidCount from '../../containers/Auction/AuctionPriceAndBidCount.js'; import BidStatus from '../../containers/Auction/BidStatus.js'; import { ITEM_TYPES } from '../../constants/constants.js'; import { formatPrice, getAuctionTime } from '../../library/helpers.js'; export default class ItemRow extends Component { static get propTypes() { return { description: PropTypes.string, donor: PropTypes.string, end: PropTypes.string.isRequired, id: PropTypes.string.isRequired, images: PropTypes.arrayOf( PropTypes.shape({ url: PropTypes.string, }), ), start: PropTytpes.string.isRequired, startPrice: PropTypes.number, subtitle: PropTypes.string, title: PropTypes.string.isRequired, type: PropTypes.string.isRequired, }; } _getBidTime = () => { const { end, start } = this.props; return getAuctionTime({ end, start }); } _viewItemDetail = () => { const { id } = this.props.details; this.props.navigation.navigate('Item', { id }); } render() { const { description, donor, end, images, start, startPrice, subtitle, title, type, } = this.props; return( {type === ITEM_TYPES.AUCTION && } {title} {subtitle} {donor && ( {donor} )} {type === ITEM_TYPES.AUCTION ? ( ) : ( {formatPrice(startPrice)} )} {this._getBidTime()} {description} ); } } const styles = StyleSheet.create({ description: { color: '#777', fontSize: 14, marginTop: 5, paddingLeft: 10, paddingRight: 10, }, donor: { color: '#777', fontSize: 14, marginTop: 5, paddingLeft: 10, }, image: { flex: 1, height: undefined, width: undefined, }, price: { color: '#777', fontSize: 16, fontWeight: 'bold', paddingLeft: 10, paddingTop: 5, }, rowContainer: { backgroundColor: '#FFF', borderRadius: 4, flexDirection: 'row', height: 100, marginRight: 10, marginLeft: 10, marginTop: 10, padding: 10, shadowColor: '#CCC', shadowOffset:{ width: 1, height: 1, }, shadowOpacity: 1.0, shadowRadius: 1, }, rowText: { flex: 4, flexDirection: 'column', }, subtitle: { color: '#777', fontSize: 14, marginTop: 5, paddingLeft: 10, }, timeline: { color: '#777', fontSize: 14, marginTop: 5, paddingLeft: 10, paddingRight: 10, }, title: { color: '#777', fontSize: 16, fontWeight: 'bold', paddingLeft: 10, paddingTop: 5, }, });