diff --git a/db.js b/db.js index c80efb210376a4979136b487014d2ec632bac259..8f34199cb1cffb5f6c505be25c3ffafc6094b286 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 9cedc1c2a9bf094675d4c4aab54db75d124ac1bf..95bf35542427def38958b52a11c357705e74e787 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 aa857af3259279d069b701b73ad2f17c50f8e910..98d3dae7b46ea994138777d56c6ee4c9f84ed9d1 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",