First step for fertilityTracking Toggle

This commit is contained in:
bl00dymarie
2024-02-14 17:48:50 +01:00
parent 092b557396
commit e395730d98
3 changed files with 31 additions and 7 deletions
+18 -7
View File
@@ -10,6 +10,7 @@ import SelectTabGroup from '../../cycle-day/select-tab-group'
import { import {
desireTrackingCategoryObservable, desireTrackingCategoryObservable,
fertilityTrackingObservable,
moodTrackingCategoryObservable, moodTrackingCategoryObservable,
noteTrackingCategoryObservable, noteTrackingCategoryObservable,
painTrackingCategoryObservable, painTrackingCategoryObservable,
@@ -18,6 +19,7 @@ import {
mucusTrackingCategoryObservable, mucusTrackingCategoryObservable,
cervixTrackingCategoryObservable, cervixTrackingCategoryObservable,
saveDesireTrackingCategory, saveDesireTrackingCategory,
saveFertilityTrackingEnabled,
saveMoodTrackingCategory, saveMoodTrackingCategory,
saveNoteTrackingCategory, saveNoteTrackingCategory,
savePainTrackingCategory, savePainTrackingCategory,
@@ -75,8 +77,13 @@ const Settings = () => {
const [isSecondarySymptomDisabled, setIsSecondarySymptomDisabled] = const [isSecondarySymptomDisabled, setIsSecondarySymptomDisabled] =
useState(false) useState(false)
const [isEnabled, setIsEnabled] = useState(false) const [isFertilityTrackingEnabled, setFertilityTrackingEnabled] = useState(
const toggleSwitch = () => setIsEnabled((previousState) => !previousState) fertilityTrackingObservable.value
)
const fertilityTrackingToggle = (value) => {
setFertilityTrackingEnabled(value)
saveFertilityTrackingEnabled(value)
}
const temperatureTrackingCategoryToggle = (value) => { const temperatureTrackingCategoryToggle = (value) => {
setTemperatureTrackingCategory(value) setTemperatureTrackingCategory(value)
@@ -112,6 +119,11 @@ const Settings = () => {
setPeriodPrediction(value) setPeriodPrediction(value)
savePeriodPrediction(value) savePeriodPrediction(value)
} }
const fertilityTrackingText = isFertilityTrackingEnabled
? labels.fertilityTracking.on
: labels.fertilityTracking.off
const periodPredictionText = isPeriodPredictionEnabled const periodPredictionText = isPeriodPredictionEnabled
? labels.periodPrediction.on ? labels.periodPrediction.on
: labels.periodPrediction.off : labels.periodPrediction.off
@@ -234,12 +246,11 @@ const Settings = () => {
value={isNoteTrackingCategoryEnabled} value={isNoteTrackingCategoryEnabled}
/> />
</Segment> </Segment>
<Segment title={labels.fertilityTracking.title}>
<Segment title={'Fertility feature'}>
<AppSwitch <AppSwitch
onToggle={toggleSwitch} onToggle={fertilityTrackingToggle}
text={'If turned on ...'} text={fertilityTrackingText}
value={isEnabled} value={isFertilityTrackingEnabled}
/> />
</Segment> </Segment>
+5
View File
@@ -66,6 +66,11 @@ export default {
'To use the period reminder please first enable period predictions in the customization settings.', 'To use the period reminder please first enable period predictions in the customization settings.',
}, },
}, },
fertilityTracking: {
title: 'Fertility phases calculation',
on: 'The quick brown fox jumps over the lazy dog',
off: 'No no',
},
secondarySymptom: { secondarySymptom: {
title: 'Secondary symptom', title: 'Secondary symptom',
cervixModeOn: cervixModeOn:
+8
View File
@@ -170,6 +170,14 @@ export async function saveNoteTrackingCategory(bool) {
noteTrackingCategoryObservable.set(bool) noteTrackingCategoryObservable.set(bool)
} }
export const fertilityTrackingObservable = Observable()
setObvWithInitValue('fertilityTracking', fertilityTrackingObservable, true)
export async function saveFertilityTrackingEnabled(bool) {
await AsyncStorage.setItem('fertilityTracking', JSON.stringify(bool))
fertilityTrackingObservable.set(bool)
}
async function setObvWithInitValue(key, obv, defaultValue) { async function setObvWithInitValue(key, obv, defaultValue) {
const result = await AsyncStorage.getItem(key) const result = await AsyncStorage.getItem(key)
let value let value