adds stats button on home screen, and creates stats screen, length still needs to be calculated

This commit is contained in:
tina
2018-08-01 17:20:13 +02:00
parent f5b3716191
commit 897e99e6af
4 changed files with 52 additions and 2 deletions
+3 -1
View File
@@ -5,6 +5,7 @@ import Calendar from './components/calendar'
import CycleDay from './components/cycle-day' import CycleDay from './components/cycle-day'
import Chart from './components/chart/chart' import Chart from './components/chart/chart'
import Settings from './components/settings' import Settings from './components/settings'
import Stats from './components/stats'
// this is until react native fixes this bugg, see // this is until react native fixes this bugg, see
// https://github.com/facebook/react-native/issues/18868#issuecomment-382671739 // https://github.com/facebook/react-native/issues/18868#issuecomment-382671739
@@ -16,5 +17,6 @@ export default createStackNavigator({
calendar: { screen: Calendar }, calendar: { screen: Calendar },
cycleDay: { screen: CycleDay }, cycleDay: { screen: CycleDay },
chart: { screen: Chart }, chart: { screen: Chart },
settings: { screen: Settings } settings: { screen: Settings },
stats: { screen: Stats}
}) })
+6
View File
@@ -87,6 +87,12 @@ export default class Home extends Component {
title="delete everything"> title="delete everything">
</Button> </Button>
</View> </View>
<View style={styles.homeButton}>
<Button
onPress={() => navigate('stats')}
title="Go to stats">
</Button>
</View>
</View> </View>
</ScrollView> </ScrollView>
) )
+41
View File
@@ -0,0 +1,41 @@
import React, { Component } from 'react'
import {
View,
Text,
ScrollView
} from 'react-native'
import { LocalDate } from 'js-joda'
import styles from '../styles/index'
import cycleModule from '../lib/cycle'
import getPeriodInfo from '../lib/period-length'
export default class Stats extends Component {
constructor(props) {
super(props)
const lastMensStart = cycleModule().getLastMensesStart(
LocalDate.now().toString()
)
const completedCycles = cycleModule().getCyclesBefore(lastMensStart)
this.numberOfCycles = completedCycles.length
// TODO get first days, compare with joda
const periodLengths = completedCycles.map(cycle => {
return cycle.length
})
// until this point
this.periodInfo = getPeriodInfo(periodLengths)
}
render() {
return (
<ScrollView>
<Text style={styles.welcome}>based on {this.numberOfCycles} periods:</Text>
<Text style={styles.welcome}>min: {this.periodInfo.minimum}</Text>
<Text style={styles.welcome}>mean: {this.periodInfo.mean}</Text>
<Text style={styles.welcome}>max: {this.periodInfo.maximum}</Text>
<Text style={styles.welcome}>median: {this.periodInfo.median}</Text>
<Text style={styles.welcome}>standard deviation: {this.periodInfo.stdDeviation}</Text>
</ScrollView>
)
}
}
+2 -1
View File
@@ -134,6 +134,7 @@ export default function config(opts) {
getCycleDayNumber, getCycleDayNumber,
getCycleForDay, getCycleForDay,
getPreviousCycle, getPreviousCycle,
getCyclesBefore getCyclesBefore,
getLastMensesStart
} }
} }