disable temperature slider when fertility or temperature turned off
This commit is contained in:
@@ -0,0 +1,62 @@
|
|||||||
|
import React from 'react'
|
||||||
|
import { StyleSheet, View } from 'react-native'
|
||||||
|
import Slider from '@ptomasroos/react-native-multi-slider'
|
||||||
|
|
||||||
|
import SliderLabel from './slider-label'
|
||||||
|
|
||||||
|
import { scaleObservable } from '../../../local-storage'
|
||||||
|
import { Colors, Sizes } from '../../../styles'
|
||||||
|
|
||||||
|
import { TEMP_MIN, TEMP_MAX, TEMP_SLIDER_STEP } from '../../../config'
|
||||||
|
|
||||||
|
const DisabledTemperatureSlider = () => {
|
||||||
|
const savedValue = scaleObservable.value
|
||||||
|
const minTemperature = savedValue.min
|
||||||
|
const maxTemperature = savedValue.max
|
||||||
|
|
||||||
|
return (
|
||||||
|
<View style={styles.container}>
|
||||||
|
<Slider
|
||||||
|
customLabel={SliderLabel}
|
||||||
|
enableLabel={true}
|
||||||
|
markerStyle={styles.marker}
|
||||||
|
markerOffsetY={Sizes.tiny}
|
||||||
|
max={TEMP_MAX}
|
||||||
|
min={TEMP_MIN}
|
||||||
|
selectedStyle={styles.sliderAccentBackground}
|
||||||
|
step={TEMP_SLIDER_STEP}
|
||||||
|
trackStyle={styles.slider}
|
||||||
|
unselectedStyle={styles.sliderBackground}
|
||||||
|
values={[minTemperature, maxTemperature]}
|
||||||
|
enabledOne={false}
|
||||||
|
enabledTwo={false}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default DisabledTemperatureSlider
|
||||||
|
|
||||||
|
const styles = StyleSheet.create({
|
||||||
|
container: {
|
||||||
|
alignItems: 'center',
|
||||||
|
paddingTop: Sizes.base,
|
||||||
|
},
|
||||||
|
marker: {
|
||||||
|
backgroundColor: Colors.grey,
|
||||||
|
borderRadius: 50,
|
||||||
|
elevation: 4,
|
||||||
|
height: Sizes.subtitle,
|
||||||
|
width: Sizes.subtitle,
|
||||||
|
},
|
||||||
|
slider: {
|
||||||
|
borderRadius: 25,
|
||||||
|
height: Sizes.small,
|
||||||
|
},
|
||||||
|
sliderAccentBackground: {
|
||||||
|
backgroundColor: Colors.grey,
|
||||||
|
},
|
||||||
|
sliderBackground: {
|
||||||
|
backgroundColor: Colors.greyLight,
|
||||||
|
},
|
||||||
|
})
|
||||||
@@ -19,6 +19,8 @@ import {
|
|||||||
temperatureTrackingCategoryObservable,
|
temperatureTrackingCategoryObservable,
|
||||||
mucusTrackingCategoryObservable,
|
mucusTrackingCategoryObservable,
|
||||||
cervixTrackingCategoryObservable,
|
cervixTrackingCategoryObservable,
|
||||||
|
periodPredictionObservable,
|
||||||
|
useCervixAsSecondarySymptomObservable,
|
||||||
saveDesireTrackingCategory,
|
saveDesireTrackingCategory,
|
||||||
saveFertilityTrackingEnabled,
|
saveFertilityTrackingEnabled,
|
||||||
saveMoodTrackingCategory,
|
saveMoodTrackingCategory,
|
||||||
@@ -30,11 +32,10 @@ import {
|
|||||||
saveSexTrackingCategory,
|
saveSexTrackingCategory,
|
||||||
saveTemperatureTrackingCategory,
|
saveTemperatureTrackingCategory,
|
||||||
saveUseCervixAsSecondarySymptom,
|
saveUseCervixAsSecondarySymptom,
|
||||||
periodPredictionObservable,
|
|
||||||
useCervixAsSecondarySymptomObservable,
|
|
||||||
} from '../../../local-storage'
|
} from '../../../local-storage'
|
||||||
import labels from '../../../i18n/en/settings'
|
import labels from '../../../i18n/en/settings'
|
||||||
import { SYMPTOMS } from '../../../config'
|
import { SYMPTOMS } from '../../../config'
|
||||||
|
import DisabledTemperatureSlider from './disabled-temperature-slider'
|
||||||
|
|
||||||
const Settings = () => {
|
const Settings = () => {
|
||||||
const { t } = useTranslation(null, { keyPrefix: 'symptoms' })
|
const { t } = useTranslation(null, { keyPrefix: 'symptoms' })
|
||||||
@@ -143,17 +144,11 @@ const Settings = () => {
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
// NOTE: when disabled (!isFertilityTrackingEnabled) button press doesn't yet trigger alert
|
|
||||||
const onSelectTab = (value) => {
|
const onSelectTab = (value) => {
|
||||||
if (isMucusTrackingCategoryEnabled && isCervixTrackingCategoryEnabled) {
|
if (isMucusTrackingCategoryEnabled && isCervixTrackingCategoryEnabled) {
|
||||||
setUseCervixAsSecondarySymptom(value)
|
setUseCervixAsSecondarySymptom(value)
|
||||||
saveUseCervixAsSecondarySymptom(value)
|
saveUseCervixAsSecondarySymptom(value)
|
||||||
console.log('show SecSymp value :>> ', value)
|
|
||||||
} else if (!isFertilityTrackingEnabled) {
|
|
||||||
console.log('2 show SecSymp value :>> ', value)
|
|
||||||
secondarySymptomDisabledPrompt()
|
|
||||||
} else {
|
} else {
|
||||||
console.log('3 show SecSymp value :>> ', value)
|
|
||||||
secondarySymptomDisabledPrompt()
|
secondarySymptomDisabledPrompt()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -208,8 +203,8 @@ const Settings = () => {
|
|||||||
: labels.secondarySymptom.cervixModeOff
|
: labels.secondarySymptom.cervixModeOff
|
||||||
|
|
||||||
const sliderDisabledPrompt = () => {
|
const sliderDisabledPrompt = () => {
|
||||||
if (!isTemperatureTrackingCategoryEnabled) {
|
if (!isFertilityTrackingEnabled) {
|
||||||
Alert.alert(labels.disabled.title, labels.disabled.message)
|
Alert.alert(labels.tempScale.disabled, labels.tempScale.disabledMessage)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -219,8 +214,6 @@ const Settings = () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('useCervixAsSecondarySymptom :>> ', useCervixAsSecondarySymptom)
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<AppPage title={labels.customization.title}>
|
<AppPage title={labels.customization.title}>
|
||||||
<Segment title={labels.customization.trackingCategories}>
|
<Segment title={labels.customization.trackingCategories}>
|
||||||
@@ -280,19 +273,19 @@ const Settings = () => {
|
|||||||
/>
|
/>
|
||||||
</Segment>
|
</Segment>
|
||||||
</Pressable>
|
</Pressable>
|
||||||
|
{/* Not ideal to have a extra DisabledTemperatureSlider but right now hard to have always the correct state of fertilityTrackingObservable in TemperatureSlider */}
|
||||||
{/* NOTE: still needs to be greyed out and not moveable */}
|
|
||||||
<Pressable onPress={sliderDisabledPrompt}>
|
<Pressable onPress={sliderDisabledPrompt}>
|
||||||
<Segment title={labels.tempScale.segmentTitle}>
|
<Segment title={labels.tempScale.segmentTitle}>
|
||||||
{/* {isTemperatureTrackingCategoryEnabled && (
|
|
||||||
<> */}
|
|
||||||
<AppText>{labels.tempScale.segmentExplainer}</AppText>
|
<AppText>{labels.tempScale.segmentExplainer}</AppText>
|
||||||
<TemperatureSlider />
|
{isTemperatureTrackingCategoryEnabled & isFertilityTrackingEnabled ? (
|
||||||
{/* </>
|
<>
|
||||||
)}
|
<TemperatureSlider />
|
||||||
{!isTemperatureTrackingCategoryEnabled && (
|
</>
|
||||||
<AppText>{labels.disabled.message}</AppText>
|
) : (
|
||||||
)} */}
|
<>
|
||||||
|
<DisabledTemperatureSlider />
|
||||||
|
</>
|
||||||
|
)}
|
||||||
</Segment>
|
</Segment>
|
||||||
</Pressable>
|
</Pressable>
|
||||||
|
|
||||||
|
|||||||
+4
-5
@@ -41,12 +41,11 @@ export default {
|
|||||||
max: 'Max',
|
max: 'Max',
|
||||||
loadError: 'Could not load saved temperature scale settings',
|
loadError: 'Could not load saved temperature scale settings',
|
||||||
saveError: 'Could not save temperature scale settings',
|
saveError: 'Could not save temperature scale settings',
|
||||||
|
disabled: 'Disabled',
|
||||||
|
disabledMessage:
|
||||||
|
'To use the temperature scale please first enable both temperature tracking and fertility phase calculation above.',
|
||||||
},
|
},
|
||||||
disabled: {
|
|
||||||
title: 'This feature is turned off',
|
|
||||||
message:
|
|
||||||
'To use the temperature scale please first enable the temperature tracking category above.',
|
|
||||||
},
|
|
||||||
tempReminder: {
|
tempReminder: {
|
||||||
title: 'Temperature reminder',
|
title: 'Temperature reminder',
|
||||||
noTimeSet: 'Set a time for a daily reminder to take your temperature',
|
noTimeSet: 'Set a time for a daily reminder to take your temperature',
|
||||||
|
|||||||
Reference in New Issue
Block a user