From d4633e0900fae5b67ae151d4893bce91ef1bc8c1 Mon Sep 17 00:00:00 2001
From: Julia Friesel <julia.friesel@gmail.com>
Date: Wed, 6 Jun 2018 17:04:28 +0200
Subject: [PATCH] Get previous temperature and fill it as placeholder

---
 db.js          | 20 +++++++++++++-------
 temperature.js | 14 +++++++++++---
 2 files changed, 24 insertions(+), 10 deletions(-)

diff --git a/db.js b/db.js
index 13e70c75..c80efb21 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 be03abe1..36e46f27 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
     }
   }
-- 
GitLab