Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import React, { PureComponent } from 'react';
- import {Text, View, Image, TouchableOpacity} from 'react-native';
- import {TextButton} from 'react-native-material-buttons';
- import Icon from 'react-native-vector-icons/MaterialIcons';
- import {withStateHandlers} from 'recompose';
- import PropTypes from 'prop-types';
- import {Card, Divider} from 'common-components';
- import {v2Colors, feedContentStyles, v2ButtonStyles} from 'theme';
- import format from 'date-fns/format';
- import styles from 'events/styles';
- import EventDate from './EventDate';
- import * as deviceHelpers from 'utils/phone';
- const defaultImage = require('icons/image-dummy-flag.png');
- const EventFeedCard = props => {
- //prettier-ignore
- const source = props.event.ImageURL ? {uri: props.event.ImageURL} : defaultImage;
- //prettier-ignore
- const contentStyles = deviceHelpers.isTablet ? feedContentStyles.tabletContent : feedContentStyles.content;
- //prettier-ignore
- const contentFlexer = deviceHelpers.isTablet ? {flex: 2} : {flex: 1};
- //prettier-ignore
- const eventLocation = `${props.event.Location.City}, ${props.event.Location.StateAbbreviation}`;
- const displayTotal = props.isRegistered && !props.event.IsFree;
- return (
- <Card style={props.style}>
- <View style={feedContentStyles.header}>
- <Text style={feedContentStyles.title}>
- {`NFIB ${props.event.LegislatureType.toUpperCase()} EVENT `}
- </Text>
- <Text style={feedContentStyles.postDate}>
- {`On ${format(props.event.StartDate, 'MMM D, YYYY')}`}
- </Text>
- </View>
- {!deviceHelpers.isTablet && (
- <View style={feedContentStyles.feedMainImageContainer}>
- <Image source={source} style={feedContentStyles.feedMainImage} />
- </View>
- )}
- <Divider />
- <View style={contentStyles}>
- {deviceHelpers.isTablet && (
- <View style={feedContentStyles.feedMainImageContainerTablet}>
- <Image source={source} style={feedContentStyles.feedMainImage} />
- </View>
- )}
- <View style={contentFlexer}>
- <Text style={feedContentStyles.contentTitle}>
- {props.event.Title}
- </Text>
- <View style={[styles.detailsRow, {marginBottom: 8}]}>
- <Icon
- name="date-range"
- size={16}
- color="rgba(0,0,0,0.5)"
- style={styles.icon}
- />
- <EventDate event={props.event} />
- </View>
- <View style={[styles.detailsRow, {marginBottom: 8}]}>
- <Icon
- name="location-on"
- size={16}
- color="rgba(0,0,0,0.5)"
- style={styles.icon}
- />
- <Text style={styles.smallerText}>{eventLocation}</Text>
- </View>
- {displayTotal && (
- <View style={[styles.detailsRow, {marginBottom: 8}]}>
- <Icon
- name="credit-card"
- size={16}
- color="rgba(0,0,0,0.54)"
- style={styles.icon}
- />
- <Text style={styles.smallerText}>{`$${props.grandTotal}`}</Text>
- </View>
- )}
- <Text style={feedContentStyles.parragraph}>
- {props.event.ShortDescription}
- </Text>
- </View>
- </View>
- {props.isRegistered && <Divider style={styles.dividerPusher} />}
- <View style={[feedContentStyles.footerActions, styles.footerActions]}>
- {props.isRegistered && (
- <TouchableOpacity
- style={styles.calendarBtn}
- onPress={props.handleAddToCalendar}
- >
- <Text style={styles.gothamBold14Black}>{'ADD TO CALENDAR'}</Text>
- </TouchableOpacity>
- )}
- <TextButton
- color={v2Colors.green}
- title={'VIEW DETAILS'}
- titleColor={v2Colors.white}
- onPress={props.mainActionButtonPress}
- titleStyle={v2ButtonStyles.titleStyle}
- />
- </View>
- </Card>
- );
- };
- EventFeedCard.propTypes = {
- event: PropTypes.object.isRequired,
- grandTotal: PropTypes.number,
- handleAddToCalendar: PropTypes.func,
- isOpen: PropTypes.bool,
- isRegistered: PropTypes.bool,
- mainActionButtonPress: PropTypes.func,
- numberOfLines: PropTypes.number,
- style: PropTypes.oneOfType([PropTypes.obejct, PropTypes.number]),
- toggleContent: PropTypes.func,
- };
- export default withStateHandlers(
- {
- isOpen: false,
- numberOfLines: 4,
- },
- {
- toggleContent: ({isOpen}) => () => {
- const numberOfLines = isOpen ? 4 : null;
- return {
- isOpen: !isOpen,
- numberOfLines,
- };
- },
- }
- )(EventFeedCard);
- import React from 'react';
- import {Text, View, Image, TouchableOpacity} from 'react-native';
- import {TextButton} from 'react-native-material-buttons';
- import Icon from 'react-native-vector-icons/MaterialIcons';
- import {withStateHandlers} from 'recompose';
- import PropTypes from 'prop-types';
- import {Card, Divider} from 'common-components';
- import {v2Colors, feedContentStyles, v2ButtonStyles} from 'theme';
- import format from 'date-fns/format';
- import styles from 'events/styles';
- import EventDate from './EventDate';
- import * as deviceHelpers from 'utils/phone';
- const defaultImage = require('icons/image-dummy-flag.png');
- class EventFeedCard extends React.Component {
- componentDidMount() {
- console.log(this.this);
- }
- // //prettier-ignore
- // const source = this.event.ImageURL ? {uri: this.event.ImageURL} : defaultImage;
- // //prettier-ignore
- // const contentStyles = deviceHelpers.isTablet ? feedContentStyles.tabletContent : feedContentStyles.content;
- // //prettier-ignore
- // const contentFlexer = deviceHelpers.isTablet ? {flex: 2} : {flex: 1};
- // //prettier-ignore
- // const eventLocation = `${this.event.Location.City}, ${this.event.Location.StateAbbreviation}`;
- // const displayTotal = this.isRegistered && !this.event.IsFree;
- render() {
- return (
- <Card style={this.style}>
- <View style={feedContentStyles.header}>
- <Text style={feedContentStyles.title}>
- {`NFIB ${this.event.LegislatureType.toUpperCase()} EVENT `}
- </Text>
- <Text style={feedContentStyles.postDate}>
- {`On ${format(this.event.StartDate, 'MMM D, YYYY')}`}
- </Text>
- </View>
- {!deviceHelpers.isTablet && (
- <View style={feedContentStyles.feedMainImageContainer}>
- <Image source={source} style={feedContentStyles.feedMainImage} />
- </View>
- )}
- <Divider />
- <View style={contentStyles}>
- {deviceHelpers.isTablet && (
- <View style={feedContentStyles.feedMainImageContainerTablet}>
- <Image source={source} style={feedContentStyles.feedMainImage} />
- </View>
- )}
- <View style={contentFlexer}>
- <Text style={feedContentStyles.contentTitle}>
- {this.event.Title}
- </Text>
- <View style={[styles.detailsRow, {marginBottom: 8}]}>
- <Icon
- name="date-range"
- size={16}
- color="rgba(0,0,0,0.5)"
- style={styles.icon}
- />
- <EventDate event={this.event} />
- </View>
- <View style={[styles.detailsRow, {marginBottom: 8}]}>
- <Icon
- name="location-on"
- size={16}
- color="rgba(0,0,0,0.5)"
- style={styles.icon}
- />
- <Text style={styles.smallerText}>{eventLocation}</Text>
- </View>
- {displayTotal && (
- <View style={[styles.detailsRow, {marginBottom: 8}]}>
- <Icon
- name="credit-card"
- size={16}
- color="rgba(0,0,0,0.54)"
- style={styles.icon}
- />
- <Text style={styles.smallerText}>{`$${this.grandTotal}`}</Text>
- </View>
- )}
- <Text style={feedContentStyles.parragraph}>
- {this.event.ShortDescription}
- </Text>
- </View>
- </View>
- {this.isRegistered && <Divider style={styles.dividerPusher} />}
- <View style={[feedContentStyles.footerActions, styles.footerActions]}>
- {this.isRegistered && (
- <TouchableOpacity
- style={styles.calendarBtn}
- onPress={this.handleAddToCalendar}
- >
- <Text style={styles.gothamBold14Black}>{'ADD TO CALENDAR'}</Text>
- </TouchableOpacity>
- )}
- <TextButton
- color={v2Colors.green}
- title={'VIEW DETAILS'}
- titleColor={v2Colors.white}
- onPress={this.mainActionButtonPress}
- titleStyle={v2ButtonStyles.titleStyle}
- />
- </View>
- </Card>
- );
- }
- // EventFeedCard.propTypes = {
- // event: PropTypes.object.isRequired,
- // grandTotal: PropTypes.number,
- // handleAddToCalendar: PropTypes.func,
- // isOpen: PropTypes.bool,
- // isRegistered: PropTypes.bool,
- // mainActionButtonPress: PropTypes.func,
- // numberOfLines: PropTypes.number,
- // style: PropTypes.oneOfType([PropTypes.obejct, PropTypes.number]),
- // toggleContent: PropTypes.func,
- // };
- // }
- export default withStateHandlers(
- {
- isOpen: false,
- numberOfLines: 4,
- },
- {
- toggleContent: ({isOpen}) => () => {
- const numberOfLines = isOpen ? 4 : null;
- return {
- isOpen: !isOpen,
- numberOfLines,
- };
- },
- }
- )(EventFeedCard);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement