/** * The examples provided by Facebook are for non-commercial testing and * evaluation purposes only. * * Facebook reserves all rights not expressly granted. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL * FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * @flow */ 'use strict'; var React = require('react-native'); var { Image, Platform, StyleSheet, Text, TouchableHighlight, TouchableNativeFeedback, View } = React; var getStyleFromScore = require('./getStyleFromScore'); var getImageSource = require('./getImageSource'); var getTextFromScore = require('./getTextFromScore'); var MovieCell = React.createClass({ render: function() { var criticsScore = this.props.movie.ratings.critics_score; var TouchableElement = TouchableHighlight; if (Platform.OS === 'android') { TouchableElement = TouchableNativeFeedback; } return ( {/* $FlowIssue #7363964 - There's a bug in Flow where you cannot * omit a property or set it to undefined if it's inside a shape, * even if it isn't required */} {this.props.movie.title} {this.props.movie.year} {' '}•{' '} Critics {getTextFromScore(criticsScore)} ); } }); var styles = StyleSheet.create({ textContainer: { flex: 1, }, movieTitle: { flex: 1, fontSize: 16, fontWeight: '500', marginBottom: 2, }, movieYear: { color: '#999999', fontSize: 12, }, row: { alignItems: 'center', backgroundColor: 'white', flexDirection: 'row', padding: 5, }, cellImage: { backgroundColor: '#dddddd', height: 93, marginRight: 10, width: 60, }, cellBorder: { backgroundColor: 'rgba(0, 0, 0, 0.1)', height: StyleSheet.hairlineWidth, marginLeft: 4, }, }); module.exports = MovieCell;