// @flow import * as React from 'react'; import {Animated, Dimensions} from "react-native"; import ImageListItem from "./ImageListItem"; import CardListItem from "./CardListItem"; import type {ViewStyle} from "react-native/Libraries/StyleSheet/StyleSheet"; type Props = { dataset: Array, isHorizontal: boolean, contentContainerStyle?: ViewStyle, } export type cardItem = { key: string, title: string, subtitle: string, image: string | number, onPress: () => void, }; export type cardList = Array; export default class CardList extends React.Component { static defaultProps = { isHorizontal: false, } windowWidth: number; horizontalItemSize: number; constructor(props: Props) { super(props); this.windowWidth = Dimensions.get('window').width; this.horizontalItemSize = this.windowWidth/4; // So that we can fit 3 items and a part of the 4th => user knows he can scroll } renderItem = ({item}: { item: cardItem }) => { if (this.props.isHorizontal) return ; else return ; }; keyExtractor = (item: cardItem) => item.key; render() { let containerStyle = {}; if (this.props.isHorizontal) { containerStyle = { height: this.horizontalItemSize + 50, justifyContent: 'space-around', }; } return ( ); } }