Skip to content
Snippets Groups Projects
Commit cd1e689a authored by Julia Friesel's avatar Julia Friesel
Browse files

Get actual amount of cycle days to display

parent 0afaf8e2
No related branches found
No related tags found
No related merge requests found
...@@ -4,9 +4,8 @@ import range from 'date-range' ...@@ -4,9 +4,8 @@ import range from 'date-range'
import { LocalDate } from 'js-joda' import { LocalDate } from 'js-joda'
import { yAxis, normalizeToScale } from './y-axis' import { yAxis, normalizeToScale } from './y-axis'
import DayColumn from './day-column' import DayColumn from './day-column'
import { getCycleDay, cycleDaysSortedByDate } from '../../db' import { getCycleDay, cycleDaysSortedByDate, getAmountOfCycleDays } from '../../db'
import styles from './styles' import styles from './styles'
import config from './config'
const yAxisView = <View {...styles.yAxis}>{yAxis.labels}</View> const yAxisView = <View {...styles.yAxis}>{yAxis.labels}</View>
...@@ -14,7 +13,7 @@ export default class CycleChart extends Component { ...@@ -14,7 +13,7 @@ export default class CycleChart extends Component {
constructor(props) { constructor(props) {
super(props) super(props)
this.state = { this.state = {
columns: makeColumnInfo(config.xAxisRangeInDays) columns: makeColumnInfo(),
} }
this.renderColumn = ({item, index}) => { this.renderColumn = ({item, index}) => {
return ( return (
...@@ -29,7 +28,7 @@ export default class CycleChart extends Component { ...@@ -29,7 +28,7 @@ export default class CycleChart extends Component {
this.reCalculateChartInfo = (function(Chart) { this.reCalculateChartInfo = (function(Chart) {
return function() { return function() {
Chart.setState({columns: makeColumnInfo(config.xAxisRangeInDays)}) Chart.setState({columns: makeColumnInfo()})
} }
})(this) })(this)
...@@ -60,8 +59,16 @@ export default class CycleChart extends Component { ...@@ -60,8 +59,16 @@ export default class CycleChart extends Component {
} }
} }
function makeColumnInfo(n) { function makeColumnInfo() {
const xAxisDates = getPreviousDays(n).map(jsDate => { let amountOfCycleDays = getAmountOfCycleDays()
// if there's not much data yet, we want to show at least 30 days on the chart
if (amountOfCycleDays < 30) {
amountOfCycleDays = 30
} else {
// we don't want the chart to end abruptly before the first data day
amountOfCycleDays += 5
}
const xAxisDates = getTodayAndPreviousDays(amountOfCycleDays).map(jsDate => {
return LocalDate.of( return LocalDate.of(
jsDate.getFullYear(), jsDate.getFullYear(),
jsDate.getMonth() + 1, jsDate.getMonth() + 1,
...@@ -85,7 +92,7 @@ function makeColumnInfo(n) { ...@@ -85,7 +92,7 @@ function makeColumnInfo(n) {
}) })
} }
function getPreviousDays(n) { function getTodayAndPreviousDays(n) {
const today = new Date() const today = new Date()
today.setHours(0) today.setHours(0)
today.setMinutes(0) today.setMinutes(0)
......
...@@ -4,8 +4,7 @@ const config = { ...@@ -4,8 +4,7 @@ const config = {
temperatureScale: { temperatureScale: {
low: 35, low: 35,
high: 38 high: 38
}, }
xAxisRangeInDays: 1000
} }
const margin = 3 const margin = 3
......
...@@ -57,7 +57,6 @@ export default class DayColumn extends Component { ...@@ -57,7 +57,6 @@ export default class DayColumn extends Component {
} }
if (typeof mucus === 'number') { if (typeof mucus === 'number') {
console.log('ever')
const mucusIcon = ( const mucusIcon = (
<View <View
position='absolute' position='absolute'
......
import Realm from 'realm' import Realm from 'realm'
import { LocalDate } from 'js-joda' import { LocalDate, ChronoUnit } from 'js-joda'
import { import {
cycleWithTempAndNoMucusShift, cycleWithTempAndNoMucusShift,
cycleWithFhm, cycleWithFhm,
...@@ -193,6 +193,15 @@ function getColumnNamesForCsv() { ...@@ -193,6 +193,15 @@ function getColumnNamesForCsv() {
} }
} }
function getAmountOfCycleDays() {
const amountOfCycleDays = cycleDaysSortedByDate.length
if (!amountOfCycleDays) return 0
const earliest = cycleDaysSortedByDate[amountOfCycleDays - 1]
const today = LocalDate.now()
const earliestAsLocalDate = LocalDate.parse(earliest.date)
return earliestAsLocalDate.until(today, ChronoUnit.DAYS)
}
export { export {
saveSymptom, saveSymptom,
getOrCreateCycleDay, getOrCreateCycleDay,
...@@ -203,5 +212,6 @@ export { ...@@ -203,5 +212,6 @@ export {
deleteAll, deleteAll,
getPreviousTemperature, getPreviousTemperature,
getCycleDay, getCycleDay,
getColumnNamesForCsv getColumnNamesForCsv,
getAmountOfCycleDays
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment