From 724e73ad142b66bc2bcc3c5fdd88689f188d7f96 Mon Sep 17 00:00:00 2001
From: Julia Friesel <julia.friesel@gmail.com>
Date: Tue, 12 Jun 2018 13:10:42 +0200
Subject: [PATCH] Fix getPreviousTemperature, only use temp dates

---
 db.js             | 11 ++++++++---
 package-lock.json |  5 +++++
 package.json      |  1 +
 3 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/db.js b/db.js
index c80efb21..8f34199c 100644
--- a/db.js
+++ b/db.js
@@ -1,8 +1,10 @@
 import realm from 'realm'
+import { LocalDate } from 'js-joda'
 
 let db
 let cycleDaysSortedbyDate = []
 let bleedingDaysSortedByDate = []
+let temperatureDaysSortedByDate
 
 const TemperatureSchema = {
   name: 'Temperature',
@@ -49,6 +51,7 @@ async function openDatabase() {
 
   cycleDaysSortedbyDate = db.objects('CycleDay').sorted('date', true)
   bleedingDaysSortedByDate = db.objects('CycleDay').filtered('bleeding != null').sorted('date', true)
+  temperatureDaysSortedByDate = db.objects('CycleDay').filtered('temperature != null').sorted('date', true)
 }
 
 function saveTemperature(cycleDay, temperature) {
@@ -76,9 +79,11 @@ function getOrCreateCycleDay(localDate) {
 }
 
 function getPreviousTemperature(cycleDay) {
-  const cycleDayIndex = cycleDaysSortedbyDate.findIndex(day => day === cycleDay)
-  const previousCycleDays = cycleDaysSortedbyDate.slice(cycleDayIndex + 1)
-  const winner = previousCycleDays.find(cycleDay => cycleDay.temperature)
+  cycleDay.wrappedDate = LocalDate.parse(cycleDay.date)
+  const winner = temperatureDaysSortedByDate.find(day => {
+    const wrappedDate = LocalDate.parse(day.date)
+    return wrappedDate.isBefore(cycleDay.wrappedDate)
+  })
   if (!winner) return null
   return winner.temperature.value
 }
diff --git a/package-lock.json b/package-lock.json
index 9cedc1c2..95bf3554 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -4687,6 +4687,11 @@
         "merge-stream": "^1.0.1"
       }
     },
+    "js-joda": {
+      "version": "1.8.2",
+      "resolved": "https://registry.npmjs.org/js-joda/-/js-joda-1.8.2.tgz",
+      "integrity": "sha512-3w+3TnKqiplQyG/YQk31cBhJ/sg2Xb/fX7lneiK+z+nEjTzdfvHqJquJhtzyEA1NyLJKNpIeOQSBr3Q4nY+O8Q=="
+    },
     "js-tokens": {
       "version": "3.0.2",
       "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
diff --git a/package.json b/package.json
index aa857af3..98d3dae7 100644
--- a/package.json
+++ b/package.json
@@ -14,6 +14,7 @@
     "lint": "eslint app test"
   },
   "dependencies": {
+    "js-joda": "^1.8.2",
     "moment": "^2.22.1",
     "react": "16.3.1",
     "react-native": "0.55.4",
-- 
GitLab