540 Rename method to get previous temperature
This commit is contained in:
+132
-102
@@ -1,6 +1,6 @@
|
||||
import { ChronoUnit, LocalDate, LocalTime } from 'js-joda'
|
||||
|
||||
import { getPreviousTemperature, saveSymptom } from '../../db'
|
||||
import { getPreviousTemperatureForDate, saveSymptom } from '../../db'
|
||||
import { scaleObservable } from '../../local-storage'
|
||||
|
||||
import * as labels from '../../i18n/en/cycle-day'
|
||||
@@ -23,15 +23,16 @@ const temperatureLabels = labels.temperature
|
||||
const minutes = ChronoUnit.MINUTES
|
||||
|
||||
const isNumber = (value) => typeof value === 'number'
|
||||
export const shouldShow = (value) => value !== null ? true : false
|
||||
export const shouldShow = (value) => (value !== null ? true : false)
|
||||
|
||||
export const isPreviousTemperature = (temperature) => {
|
||||
const previousTemperature = getPreviousTemperature(temperature)
|
||||
const shouldShowSuggestion = previousTemperature ? true : false
|
||||
const suggestedTemperature = previousTemperature ?
|
||||
previousTemperature.toString() : null
|
||||
export const formatTemperature = (temperature) =>
|
||||
!temperature
|
||||
? temperature
|
||||
: Number.parseFloat(temperature.toString()).toFixed(2)
|
||||
|
||||
return { shouldShowSuggestion, suggestedTemperature }
|
||||
export const getPreviousTemperature = (date) => {
|
||||
const previousTemperature = getPreviousTemperatureForDate(date)
|
||||
return formatTemperature(previousTemperature)
|
||||
}
|
||||
|
||||
export const isTemperatureOutOfRange = (temperature) => {
|
||||
@@ -55,7 +56,7 @@ export const isTemperatureOutOfRange = (temperature) => {
|
||||
export const blank = {
|
||||
bleeding: {
|
||||
exclude: false,
|
||||
value: null
|
||||
value: null,
|
||||
},
|
||||
cervix: {
|
||||
exclude: false,
|
||||
@@ -64,9 +65,9 @@ export const blank = {
|
||||
position: null,
|
||||
},
|
||||
desire: {
|
||||
value: null
|
||||
value: null,
|
||||
},
|
||||
mood:{
|
||||
mood: {
|
||||
happy: null,
|
||||
sad: null,
|
||||
stressed: null,
|
||||
@@ -77,16 +78,16 @@ export const blank = {
|
||||
fatigue: null,
|
||||
angry: null,
|
||||
other: null,
|
||||
note: null
|
||||
note: null,
|
||||
},
|
||||
mucus: {
|
||||
exclude: false,
|
||||
feeling: null,
|
||||
texture: null,
|
||||
value: null
|
||||
value: null,
|
||||
},
|
||||
note: {
|
||||
value: null
|
||||
value: null,
|
||||
},
|
||||
pain: {
|
||||
cramps: null,
|
||||
@@ -97,7 +98,7 @@ export const blank = {
|
||||
tenderBreasts: null,
|
||||
migraine: null,
|
||||
other: null,
|
||||
note: null
|
||||
note: null,
|
||||
},
|
||||
sex: {
|
||||
solo: null,
|
||||
@@ -111,14 +112,14 @@ export const blank = {
|
||||
diaphragm: null,
|
||||
none: null,
|
||||
other: null,
|
||||
note: null
|
||||
note: null,
|
||||
},
|
||||
temperature: {
|
||||
exclude: false,
|
||||
note: null,
|
||||
time: LocalTime.now().truncatedTo(minutes).toString(),
|
||||
value: null
|
||||
}
|
||||
value: null,
|
||||
},
|
||||
}
|
||||
|
||||
export const symtomPage = {
|
||||
@@ -126,11 +127,13 @@ export const symtomPage = {
|
||||
excludeText: labels.bleeding.exclude.explainer,
|
||||
note: null,
|
||||
selectBoxGroups: null,
|
||||
selectTabGroups: [{
|
||||
key: 'value',
|
||||
options: getLabelsList(bleedingLabels),
|
||||
title: labels.bleeding.heaviness.explainer,
|
||||
}]
|
||||
selectTabGroups: [
|
||||
{
|
||||
key: 'value',
|
||||
options: getLabelsList(bleedingLabels),
|
||||
title: labels.bleeding.heaviness.explainer,
|
||||
},
|
||||
],
|
||||
},
|
||||
cervix: {
|
||||
excludeText: cervixLabels.excludeExplainer,
|
||||
@@ -151,18 +154,20 @@ export const symtomPage = {
|
||||
key: 'position',
|
||||
options: getLabelsList(cervixLabels.position.categories),
|
||||
title: cervixLabels.position.explainer,
|
||||
}
|
||||
]
|
||||
},
|
||||
],
|
||||
},
|
||||
desire: {
|
||||
excludeText: null,
|
||||
note: null,
|
||||
selectBoxGroups: null,
|
||||
selectTabGroups: [{
|
||||
key: 'value',
|
||||
options: getLabelsList(intensityLabels),
|
||||
title: labels.desire.explainer
|
||||
}]
|
||||
selectTabGroups: [
|
||||
{
|
||||
key: 'value',
|
||||
options: getLabelsList(intensityLabels),
|
||||
title: labels.desire.explainer,
|
||||
},
|
||||
],
|
||||
},
|
||||
mucus: {
|
||||
excludeText: mucusLabels.excludeExplainer,
|
||||
@@ -178,34 +183,38 @@ export const symtomPage = {
|
||||
key: 'texture',
|
||||
options: getLabelsList(mucusLabels.texture.categories),
|
||||
title: mucusLabels.texture.explainer,
|
||||
}
|
||||
]
|
||||
},
|
||||
],
|
||||
},
|
||||
mood: {
|
||||
excludeText: null,
|
||||
note: null,
|
||||
selectBoxGroups: [{
|
||||
key: 'mood',
|
||||
options: moodLabels,
|
||||
title: labels.mood.explainer
|
||||
}],
|
||||
selectTabGroups: null
|
||||
selectBoxGroups: [
|
||||
{
|
||||
key: 'mood',
|
||||
options: moodLabels,
|
||||
title: labels.mood.explainer,
|
||||
},
|
||||
],
|
||||
selectTabGroups: null,
|
||||
},
|
||||
note: {
|
||||
excludeText: null,
|
||||
note: noteDescription,
|
||||
selectBoxGroups: null,
|
||||
selectTabGroups: null
|
||||
selectTabGroups: null,
|
||||
},
|
||||
pain: {
|
||||
excludeText: null,
|
||||
note: null,
|
||||
selectBoxGroups: [{
|
||||
key: 'pain',
|
||||
options: painLabels,
|
||||
title: labels.pain.explainer
|
||||
}],
|
||||
selectTabGroups: null
|
||||
selectBoxGroups: [
|
||||
{
|
||||
key: 'pain',
|
||||
options: painLabels,
|
||||
title: labels.pain.explainer,
|
||||
},
|
||||
],
|
||||
selectTabGroups: null,
|
||||
},
|
||||
sex: {
|
||||
excludeText: null,
|
||||
@@ -220,40 +229,42 @@ export const symtomPage = {
|
||||
key: 'contraceptives',
|
||||
options: contraceptiveLabels,
|
||||
title: labels.contraceptives.explainer,
|
||||
}
|
||||
},
|
||||
],
|
||||
selectTabGroups: null
|
||||
selectTabGroups: null,
|
||||
},
|
||||
temperature: {
|
||||
excludeText: temperatureLabels.exclude.explainer,
|
||||
note: temperatureLabels.note.explainer,
|
||||
selectBoxGroups: null,
|
||||
selectTabGroups: null
|
||||
}
|
||||
selectTabGroups: null,
|
||||
},
|
||||
}
|
||||
|
||||
export const save = {
|
||||
bleeding: (data, date, shouldDeleteData) => {
|
||||
const { exclude, value } = data
|
||||
const isDataEntered = isNumber(value)
|
||||
const valuesToSave = shouldDeleteData || !isDataEntered
|
||||
? null : { value, exclude }
|
||||
const valuesToSave =
|
||||
shouldDeleteData || !isDataEntered ? null : { value, exclude }
|
||||
|
||||
saveSymptom('bleeding', date, valuesToSave)
|
||||
},
|
||||
cervix: (data, date, shouldDeleteData) => {
|
||||
const { opening, firmness, position, exclude } = data
|
||||
const isDataEntered = ['opening', 'firmness', 'position'].some(
|
||||
value => isNumber(data[value]))
|
||||
const valuesToSave = shouldDeleteData || !isDataEntered
|
||||
? null : { opening, firmness, position, exclude }
|
||||
const isDataEntered = ['opening', 'firmness', 'position'].some((value) =>
|
||||
isNumber(data[value])
|
||||
)
|
||||
const valuesToSave =
|
||||
shouldDeleteData || !isDataEntered
|
||||
? null
|
||||
: { opening, firmness, position, exclude }
|
||||
|
||||
saveSymptom('cervix', date, valuesToSave)
|
||||
},
|
||||
desire: (data, date, shouldDeleteData) => {
|
||||
const { value } = data
|
||||
const valuesToSave = shouldDeleteData || !isNumber(value)
|
||||
? null : { value }
|
||||
const valuesToSave = shouldDeleteData || !isNumber(value) ? null : { value }
|
||||
|
||||
saveSymptom('desire', date, valuesToSave)
|
||||
},
|
||||
@@ -262,11 +273,18 @@ export const save = {
|
||||
},
|
||||
mucus: (data, date, shouldDeleteData) => {
|
||||
const { feeling, texture, exclude } = data
|
||||
const isDataEntered = ['feeling', 'texture'].some(
|
||||
value => isNumber(data[value]))
|
||||
const valuesToSave = shouldDeleteData || !isDataEntered
|
||||
? null
|
||||
: { feeling, texture, value: computeNfpValue(feeling, texture), exclude }
|
||||
const isDataEntered = ['feeling', 'texture'].some((value) =>
|
||||
isNumber(data[value])
|
||||
)
|
||||
const valuesToSave =
|
||||
shouldDeleteData || !isDataEntered
|
||||
? null
|
||||
: {
|
||||
feeling,
|
||||
texture,
|
||||
value: computeNfpValue(feeling, texture),
|
||||
exclude,
|
||||
}
|
||||
|
||||
saveSymptom('mucus', date, valuesToSave)
|
||||
},
|
||||
@@ -289,21 +307,20 @@ export const save = {
|
||||
exclude,
|
||||
note,
|
||||
time,
|
||||
value: Number(value)
|
||||
value: Number(value),
|
||||
}
|
||||
|
||||
saveSymptom(
|
||||
'temperature',
|
||||
date,
|
||||
(shouldDeleteData || value === null) ? null : valuesToSave
|
||||
shouldDeleteData || value === null ? null : valuesToSave
|
||||
)
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
const saveBoxSymptom = (data, date, shouldDeleteData, symptom) => {
|
||||
const isDataEntered = Object.keys(data).some(key => data[key] !== null)
|
||||
const valuesToSave = shouldDeleteData || !isDataEntered
|
||||
? null : data
|
||||
const isDataEntered = Object.keys(data).some((key) => data[key] !== null)
|
||||
const valuesToSave = shouldDeleteData || !isDataEntered ? null : data
|
||||
|
||||
saveSymptom(symptom, date, valuesToSave)
|
||||
}
|
||||
@@ -327,46 +344,59 @@ const label = {
|
||||
return temperatureLabel
|
||||
}
|
||||
},
|
||||
mucus: mucus => {
|
||||
const filledCategories = ['feeling', 'texture'].filter(c => isNumber(mucus[c]))
|
||||
let label = filledCategories.map(category => {
|
||||
return labels.mucus.subcategories[category] + ': ' + labels.mucus[category].categories[mucus[category]]
|
||||
}).join(', ')
|
||||
mucus: (mucus) => {
|
||||
const filledCategories = ['feeling', 'texture'].filter((c) =>
|
||||
isNumber(mucus[c])
|
||||
)
|
||||
let label = filledCategories
|
||||
.map((category) => {
|
||||
return (
|
||||
labels.mucus.subcategories[category] +
|
||||
': ' +
|
||||
labels.mucus[category].categories[mucus[category]]
|
||||
)
|
||||
})
|
||||
.join(', ')
|
||||
|
||||
if (isNumber(mucus.value)) label += `\n => ${labels.mucusNFP[mucus.value]}`
|
||||
if (mucus.exclude) label = `(${label})`
|
||||
|
||||
return label
|
||||
},
|
||||
cervix: cervix => {
|
||||
const filledCategories = ['opening', 'firmness', 'position'].filter(c => isNumber(cervix[c]))
|
||||
let label = filledCategories.map(category => {
|
||||
return labels.cervix.subcategories[category] + ': ' + labels.cervix[category].categories[cervix[category]]
|
||||
}).join(', ')
|
||||
cervix: (cervix) => {
|
||||
const filledCategories = ['opening', 'firmness', 'position'].filter((c) =>
|
||||
isNumber(cervix[c])
|
||||
)
|
||||
let label = filledCategories
|
||||
.map((category) => {
|
||||
return (
|
||||
labels.cervix.subcategories[category] +
|
||||
': ' +
|
||||
labels.cervix[category].categories[cervix[category]]
|
||||
)
|
||||
})
|
||||
.join(', ')
|
||||
|
||||
if (cervix.exclude) label = `(${label})`
|
||||
|
||||
return label
|
||||
},
|
||||
note: note => note.value,
|
||||
note: (note) => note.value,
|
||||
desire: ({ value }) => {
|
||||
if (isNumber(value)) {
|
||||
return intensityLabels[value]
|
||||
}
|
||||
},
|
||||
sex: sex => {
|
||||
sex: (sex) => {
|
||||
const sexLabel = []
|
||||
if (sex && Object.values({...sex}).some(val => val)){
|
||||
Object.keys(sex).forEach(key => {
|
||||
if(sex[key] && key !== 'other' && key !== 'note') {
|
||||
sexLabel.push(
|
||||
sexLabels[key] ||
|
||||
contraceptiveLabels[key]
|
||||
)
|
||||
if (sex && Object.values({ ...sex }).some((val) => val)) {
|
||||
Object.keys(sex).forEach((key) => {
|
||||
if (sex[key] && key !== 'other' && key !== 'note') {
|
||||
sexLabel.push(sexLabels[key] || contraceptiveLabels[key])
|
||||
}
|
||||
if(key === 'other' && sex.other) {
|
||||
if (key === 'other' && sex.other) {
|
||||
let label = contraceptiveLabels[key]
|
||||
if(sex.note) {
|
||||
if (sex.note) {
|
||||
label = `${label} (${sex.note})`
|
||||
}
|
||||
sexLabel.push(label)
|
||||
@@ -375,16 +405,16 @@ const label = {
|
||||
return sexLabel.join(', ')
|
||||
}
|
||||
},
|
||||
pain: pain => {
|
||||
pain: (pain) => {
|
||||
const painLabel = []
|
||||
if (pain && Object.values({...pain}).some(val => val)){
|
||||
Object.keys(pain).forEach(key => {
|
||||
if(pain[key] && key !== 'other' && key !== 'note') {
|
||||
if (pain && Object.values({ ...pain }).some((val) => val)) {
|
||||
Object.keys(pain).forEach((key) => {
|
||||
if (pain[key] && key !== 'other' && key !== 'note') {
|
||||
painLabel.push(painLabels[key])
|
||||
}
|
||||
if(key === 'other' && pain.other) {
|
||||
if (key === 'other' && pain.other) {
|
||||
let label = painLabels[key]
|
||||
if(pain.note) {
|
||||
if (pain.note) {
|
||||
label = `${label} (${pain.note})`
|
||||
}
|
||||
painLabel.push(label)
|
||||
@@ -393,16 +423,16 @@ const label = {
|
||||
return painLabel.join(', ')
|
||||
}
|
||||
},
|
||||
mood: mood => {
|
||||
mood: (mood) => {
|
||||
const moodLabel = []
|
||||
if (mood && Object.values({...mood}).some(val => val)){
|
||||
Object.keys(mood).forEach(key => {
|
||||
if(mood[key] && key !== 'other' && key !== 'note') {
|
||||
if (mood && Object.values({ ...mood }).some((val) => val)) {
|
||||
Object.keys(mood).forEach((key) => {
|
||||
if (mood[key] && key !== 'other' && key !== 'note') {
|
||||
moodLabel.push(moodLabels[key])
|
||||
}
|
||||
if(key === 'other' && mood.other) {
|
||||
if (key === 'other' && mood.other) {
|
||||
let label = moodLabels[key]
|
||||
if(mood.note) {
|
||||
if (mood.note) {
|
||||
label = `${label} (${mood.note})`
|
||||
}
|
||||
moodLabel.push(label)
|
||||
@@ -410,7 +440,7 @@ const label = {
|
||||
})
|
||||
return moodLabel.join(', ')
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
export const getData = (symptom, symptomData) => {
|
||||
|
||||
Reference in New Issue
Block a user