diff --git a/calendar.js b/calendar.js index 4fdbd2f..9294ac0 100644 --- a/calendar.js +++ b/calendar.js @@ -17,9 +17,7 @@ export default class DatePickView extends Component { } passDateToDayView(result) { - // TODO this also has date as a string, perhaps useful for LocalDateFormat - const date = new Date(result.year, result.month - 1, result.day) - const cycleDay = getOrCreateCycleDay(date) + const cycleDay = getOrCreateCycleDay(result.dateString) const navigate = this.props.navigation.navigate navigate('dayView', { cycleDay }) } @@ -40,8 +38,7 @@ export default class DatePickView extends Component { function getBleedingDaysInCalFormat(bleedingDaysSortedByDate) { const shadesOfRed = ['#ffbaba', '#ff7b7b', '#ff5252', '#ff0000'] return bleedingDaysSortedByDate.reduce((acc, day) => { - const dateString = day.date.toISOString().slice(0, 10) - acc[dateString] = { startingDay: true, endingDay: true, color: shadesOfRed[day.bleeding.value] } + acc[day.date] = { startingDay: true, endingDay: true, color: shadesOfRed[day.bleeding.value] } return acc }, {}) } diff --git a/db.js b/db.js index b1a6406..dd2648e 100644 --- a/db.js +++ b/db.js @@ -1,9 +1,7 @@ import realm from 'realm' -import { v4 as uuid } from 'uuid' let db let cycleDaysSortedbyTempValueView = [] -let cycleDaysSortedbyDate = [] let bleedingDaysSortedByDate = [] const TemperatureSchema = { @@ -24,10 +22,9 @@ const BleedingSchema = { const CycleDaySchema = { name: 'CycleDay', - primaryKey: 'key', + primaryKey: 'date', properties: { - key: 'string', - date: 'date', + date: 'string', temperature: { type: 'Temperature', optional: true @@ -52,14 +49,12 @@ async function openDatabase() { // 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) - cycleDaysSortedbyDate = db.objects('CycleDay').sorted('date', true) bleedingDaysSortedByDate = db.objects('CycleDay').filtered('bleeding != null').sorted('date', true) } function saveTemperature(date, temperature) { db.write(() => { const doc = { - key: uuid(), date, temperature } @@ -73,13 +68,12 @@ function saveBleeding(cycleDay, bleeding) { }) } -function getOrCreateCycleDay(date) { - let result = Array.from(cycleDaysSortedbyDate.filtered('date = $0', date))[0] +function getOrCreateCycleDay(localDate) { + let result = db.objectForPrimaryKey('CycleDay', localDate) if (!result) { db.write(() => { result = db.create('CycleDay', { - key: uuid(), - date + date: localDate }) }) }