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' import FramedSegment from './framed-segment' 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> <FramedSegment style={styles.framedSegmentLast} title={labels.cycleLengthTitle} > <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.emphasis}>{labels.averageLabel}</AppText> <AppText style={styles.emphasis}>{': ' + cycleInfo.mean + ' ' + labels.daysLabel}</AppText> </View> <View style={styles.statsRow}> <AppText>{labels.minLabel}</AppText> <AppText>{': ' + cycleInfo.minimum + ' ' + labels.daysLabel}</AppText> </View> <View style={styles.statsRow}> <AppText>{labels.maxLabel}</AppText> <AppText>{': ' + cycleInfo.maximum + ' ' + labels.daysLabel}</AppText> </View> <View style={[styles.statsRow, styles.paragraph]}> <AppText>{labels.stdLabel}</AppText> <AppText>{': ' + 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>} </FramedSegment> </ScrollView> ) } }