import React, { Component } from 'react' import { View, ScrollView } from 'react-native' import styles from '../styles/index' import cycleModule from '../lib/cycle' import {getCycleLengthStats as getCycleInfo} from '../lib/cycle-length' import {stats as labels} from '../i18n/en/labels' import AppText from './app-text' export default class Stats extends Component { render() { const cycleLengths = cycleModule().getAllCycleLengths() const atLeastOneCycle = cycleLengths.length >= 1 let numberOfCycles let cycleInfo if (atLeastOneCycle) { numberOfCycles = cycleLengths.length if (numberOfCycles > 1) { cycleInfo = getCycleInfo(cycleLengths) } } return ( <ScrollView> <View style={[styles.textWrappingView]}> <AppText style={styles.title}>{labels.cycleLengthTitle}</AppText> <AppText style={styles.paragraph}>{labels.cycleLengthExplainer}</AppText> {!atLeastOneCycle && <AppText>{labels.emptyStats}</AppText> } {atLeastOneCycle && numberOfCycles === 1 && <View style={styles.statsRow}> <AppText>{labels.oneCycleStats}</AppText> <AppText style={styles.emphasis}>{' ' + cycleLengths[0] + ' '}</AppText> <AppText>{labels.daysLabel + '.'}</AppText> </View> } {atLeastOneCycle && numberOfCycles > 1 && <View> <View style={styles.statsRow}> <AppText style={[styles.statsLabelLeft, styles.emphasis]}>{labels.averageLabel}</AppText> <AppText style={[styles.statsLabelRight, styles.emphasis]}>{cycleInfo.mean + ' ' + labels.daysLabel}</AppText> </View> <View style={styles.statsRow}> <AppText style={styles.statsLabelLeft}>{labels.minLabel}</AppText> <AppText style={styles.statsLabelRight}>{cycleInfo.minimum + ' ' + labels.daysLabel}</AppText> </View> <View style={styles.statsRow}> <AppText style={styles.statsLabelLeft}>{labels.maxLabel}</AppText> <AppText style={styles.statsLabelRight}>{cycleInfo.maximum + ' ' + labels.daysLabel}</AppText> </View> <View style={[styles.statsRow, styles.paragraph]}> <AppText style={styles.statsLabelLeft}>{labels.stdLabel}</AppText> <AppText style={styles.statsLabelRight}>{cycleInfo.stdDeviation + ' ' + labels.daysLabel}</AppText> </View> <View style={styles.statsRow}> <AppText>{labels.basisOfStatsBeginning}</AppText> <AppText style={styles.emphasis}>{' ' + numberOfCycles + ' '} </AppText> <AppText>{labels.basisOfStatsEnd}</AppText> </View> </View>} </View> </ScrollView> ) } }