diff --git a/db.js b/db.js index 13e70c7565078a9b8355d120263d1d192370abd4..c80efb210376a4979136b487014d2ec632bac259 100644 --- a/db.js +++ b/db.js @@ -1,9 +1,8 @@ import realm from 'realm' let db - -let bleedingDaysSortedByDate = [] let cycleDaysSortedbyDate = [] +let bleedingDaysSortedByDate = [] const TemperatureSchema = { name: 'Temperature', @@ -48,11 +47,8 @@ async function openDatabase() { deleteRealmIfMigrationNeeded: true }) - bleedingDaysSortedByDate = db.objects('CycleDay').fil<<<<<<< 933b64056a13d04c3bfdebf531962b84d9daa4ce - // just for testing purposes, the highest temperature will be topmost - // because I was too layz to make a scroll view - cycleDaysSortedbyTempValueView = db.objects('CycleDay').filtered('temperature != null').sorted('temperature.value', true) tered('bleeding != null').sorted('date', true) cycleDaysSortedbyDate = db.objects('CycleDay').sorted('date', true) + bleedingDaysSortedByDate = db.objects('CycleDay').filtered('bleeding != null').sorted('date', true) } function saveTemperature(cycleDay, temperature) { @@ -79,10 +75,20 @@ function getOrCreateCycleDay(localDate) { return result } +function getPreviousTemperature(cycleDay) { + const cycleDayIndex = cycleDaysSortedbyDate.findIndex(day => day === cycleDay) + const previousCycleDays = cycleDaysSortedbyDate.slice(cycleDayIndex + 1) + const winner = previousCycleDays.find(cycleDay => cycleDay.temperature) + if (!winner) return null + return winner.temperature.value +} + export { + cycleDaysSortedbyDate, openDatabase, saveTemperature, saveBleeding, getOrCreateCycleDay, - bleedingDaysSortedByDate + bleedingDaysSortedByDate, + getPreviousTemperature } diff --git a/temperature.js b/temperature.js index be03abe1d0d2f133309ad651b99a76c58c637ad1..36e46f27699ec20630f48e885a2a7cc1284cf219 100644 --- a/temperature.js +++ b/temperature.js @@ -8,7 +8,7 @@ import { } from 'react-native' import styles from './styles' -import { saveTemperature } from './db' +import { saveTemperature, getPreviousTemperature } from './db' import { formatDateForViewHeader } from './format' import getCycleDay from './get-cycle-day' @@ -16,10 +16,18 @@ export default class Temp extends Component { constructor(props) { super(props) const cycleDay = props.navigation.state.params.cycleDay - console.log(cycleDay.temperature ? cycleDay.temperature.value : '') + let initialValue + + if(cycleDay.temperature) { + initialValue = cycleDay.temperature.toString() + } else { + const prevTemp = getPreviousTemperature(cycleDay) + initialValue = prevTemp ? prevTemp.toString() : '' + } + this.state = { cycleDay, - currentValue: cycleDay.temperature ? cycleDay.temperature.value.toString() : '', + currentValue: initialValue, exclude: cycleDay.temperature ? cycleDay.temperature.exclude : false } }