All files / text Text.js

100% Statements 5/5
100% Branches 20/20
100% Functions 1/1
100% Lines 5/5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66          14x                                 14x                   7x   7x                                       14x                      
import React, { PropTypes } from 'react';
import { Text, StyleSheet, Platform } from 'react-native';
import fonts from '../config/fonts';
import normalize from '../helpers/normalizeText';
 
const styles = StyleSheet.create({
  text: {
    ...Platform.select({
      android: {
        ...fonts.android.regular
      }
    })
  },
  bold: {
    ...Platform.select({
      android: {
        ...fonts.android.bold
      }
    })
  }
});
 
const TextElement = (props) => {
  const {
    style,
    children,
    h1,
    h2,
    h3,
    h4,
    fontFamily,
    ...rest,
  } = props;
 
  return (
    <Text
      style={[
        styles.text,
        h1 && {fontSize: normalize(40)},
        h2 && {fontSize: normalize(34)},
        h3 && {fontSize: normalize(28)},
        h4 && {fontSize: normalize(22)},
        h1 && styles.bold,
        h2 && styles.bold,
        h3 && styles.bold,
        h4 && styles.bold,
        fontFamily && {fontFamily},
        style && style
      ]}
      {...rest}
    >{children}</Text>
  );
};
 
TextElement.propTypes = {
 style: PropTypes.any,
 h1: PropTypes.bool,
 h2: PropTypes.bool,
 h3: PropTypes.bool,
 h4: PropTypes.bool,
 fontFamily: PropTypes.string,
 children: PropTypes.any,
};
 
export default TextElement;