Merge branch '712-chore-testing-feedback-for-v1-2403-11-part-2' into 'main'

Resolve "Chore: Testing Feedback for v1.2403.11 part 2"

Closes #712

See merge request bloodyhealth/drip!675
This commit is contained in:
wunderfisch
2024-03-19 11:54:58 +00:00
8 changed files with 115 additions and 64 deletions
+8 -1
View File
@@ -6,13 +6,14 @@ import AppText from './app-text'
import { Colors, Containers, Spacing, Typography } from '../../styles'
const Segment = ({ children, last, title }) => {
const Segment = ({ children, last, title, subheader }) => {
const containerStyle = last ? styles.containerLast : styles.container
const commonStyle = Object.assign({}, containerStyle)
return (
<View style={commonStyle}>
{title && <AppText style={styles.title}>{title}</AppText>}
{subheader && <AppText style={styles.subheader}>{subheader}</AppText>}
{children}
</View>
)
@@ -23,6 +24,7 @@ Segment.propTypes = {
last: PropTypes.bool,
style: PropTypes.object,
title: PropTypes.string,
subheader: PropTypes.string,
}
const styles = StyleSheet.create({
@@ -39,6 +41,11 @@ const styles = StyleSheet.create({
title: {
...Typography.subtitle,
},
subheader: {
...Typography.subtitle,
fontWeight: 'bold',
marginBottom: Spacing.zero,
},
})
export default Segment
+6 -1
View File
@@ -15,6 +15,7 @@ import Temperature from './temperature'
import { blank, save, shouldShow, symtomPage } from '../helpers/cycle-day'
import { showToast } from '../helpers/general'
import { fertilityTrackingObservable } from '../../local-storage'
import { shared as sharedLabels } from '../../i18n/en/labels'
import info from '../../i18n/en/symptom-info'
import { Colors, Containers, Sizes, Spacing } from '../../styles'
@@ -25,6 +26,7 @@ const SymptomEditView = ({ date, onClose, symptom, symptomData }) => {
const [shouldShowInfo, setShouldShowInfo] = useState(false)
const getParsedData = () => JSON.parse(JSON.stringify(data))
const onPressLearnMore = () => setShouldShowInfo(!shouldShowInfo)
const isFertilityTrackingEnabled = fertilityTrackingObservable.value
const onEditNote = (note) => {
const parsedData = getParsedData()
@@ -167,7 +169,10 @@ const SymptomEditView = ({ date, onClose, symptom, symptomData }) => {
</Segment>
)
})}
{shouldShow(symptomConfig.excludeText) && (
{/* show exclude AppSwitch for bleeding, mucus, cervix, temperature */}
{/* but if fertility is off only for bleeding */}
{shouldShow(symptomConfig.excludeText) &&
(symptom === 'bleeding' || isFertilityTrackingEnabled) && (
<Segment style={styles.segmentBorder}>
<AppSwitch
onToggle={onExcludeToggle}
+39 -7
View File
@@ -1,10 +1,12 @@
import React, { useEffect, useState } from 'react'
import { Alert, Pressable } from 'react-native'
import { Alert, Pressable, StyleSheet, View } from 'react-native'
import { useTranslation } from 'react-i18next'
import AppIcon from '../../common/app-icon'
import AppPage from '../../common/app-page'
import AppSwitch from '../../common/app-switch'
import AppText from '../../common/app-text'
import { Colors, Spacing, Typography } from '../../../styles'
import TemperatureSlider from './temperature-slider'
import Segment from '../../common/segment'
import TrackingCategorySwitch from '../../common/tracking-category-switch'
@@ -274,6 +276,7 @@ const Settings = () => {
symptom={SYMPTOMS[8]}
/>
</Segment>
<Pressable onPress={fertilityDisabledPrompt}>
<Segment title={labels.fertilityTracking.title}>
<AppText>{labels.fertilityTracking.message}</AppText>
@@ -286,6 +289,19 @@ const Settings = () => {
</Segment>
</Pressable>
<Segment title={labels.periodPrediction.title}>
<AppSwitch
onToggle={onPeriodPredictionToggle}
text={periodPredictionText}
value={isPeriodPredictionEnabled}
/>
</Segment>
<Segment
subheader={labels.customization.subheaderSymptoThermalMethod}
last
></Segment>
<Pressable onPress={sliderDisabledPrompt}>
<Segment title={labels.tempScale.segmentTitle}>
<AppText>{labels.tempScale.segmentExplainer}</AppText>
@@ -304,16 +320,32 @@ const Settings = () => {
/>
</Segment>
</Pressable>
<Segment title={labels.periodPrediction.title} last>
<AppSwitch
onToggle={onPeriodPredictionToggle}
text={periodPredictionText}
value={isPeriodPredictionEnabled}
<Segment last>
<View style={styles.line}>
<AppIcon
color={Colors.purple}
name="info-with-circle"
style={styles.icon}
/>
<AppText style={styles.title}>{labels.preOvu.title}</AppText>
</View>
<AppText>{labels.preOvu.note}</AppText>
</Segment>
</AppPage>
)
}
export default Settings
const styles = StyleSheet.create({
icon: {
marginRight: Spacing.base,
},
line: {
flexDirection: 'row',
alignItems: 'center',
},
title: {
...Typography.subtitle,
},
})
-1
View File
@@ -11,7 +11,6 @@ const menuItems = [
{ label: 'reminders', componentName: 'Reminders' },
{ label: 'dataManagement', componentName: 'DataManagement' },
{ label: 'password', componentName: 'Password' },
{ label: 'info', componentName: 'Info' },
]
const SettingsMenu = ({ navigate }) => {
+4 -4
View File
@@ -112,19 +112,19 @@
"menuItem": {
"dataManagement": {
"name": "Data",
"text": "import, export or delete your data"
"text": "Import, export or delete your data"
},
"customization": {
"name": "Customization",
"text": "define how you want to use drip"
"text": "Define how you want to use drip"
},
"password": {
"name": "Password",
"text": "set or edit your password"
"text": "Set, edit or delete your password"
},
"reminders": {
"name": "Reminders",
"text": "turn on/off reminders"
"text": "Turn on/off reminders"
},
"info": {
"name": "Info",
+44 -38
View File
@@ -4,57 +4,58 @@ export const intensity = ['low', 'medium', 'high']
export const bleeding = {
labels: ['spotting', 'light', 'medium', 'heavy'],
heaviness: {
header: "Heaviness",
explainer: "How heavy is the bleeding?",
header: 'Heaviness',
explainer: 'How heavy is the bleeding?',
},
exclude: {
header: "Exclude",
explainer: "You can exclude this value if it's not menstrual bleeding"
}
header: 'Exclude',
explainer: "You can exclude this value if it's not menstrual bleeding",
},
}
export const cervix = {
subcategories: {
opening: 'opening',
firmness: 'firmness',
position: 'position'
position: 'position',
},
opening: {
categories: ['closed', 'medium', 'open'],
explainer: 'Is your cervix open or closed?'
explainer: 'Is your cervix open or closed?',
},
firmness: {
categories: ['hard', 'soft'],
explainer: "When it's hard, it might feel like the tip of your nose"
explainer: "When it's hard, it might feel like the tip of your nose",
},
position: {
categories: ['low', 'medium', 'high'],
explainer: 'How high up in the vagina is the cervix?'
explainer: 'How high up in the vagina is the cervix?',
},
excludeExplainer: "You can exclude this value if you don't want to use it for fertility detection.",
actionHint: 'Choose values for at least "Opening" and "Firmness" to save.'
excludeExplainer:
"You can exclude this value if you don't want to use it for fertility detection.",
}
export const mucus = {
subcategories: {
feeling: 'feeling',
texture: 'texture'
texture: 'texture',
},
feeling: {
categories: ['dry', 'nothing', 'wet', 'slippery'],
explainer: 'What does your vaginal entrance feel like?'
explainer: 'What does your vaginal entrance feel like?',
},
texture: {
categories: ['nothing', 'creamy', 'egg white'],
explainer: "Looking at and touching your cervical mucus, which describes it best?"
explainer:
'Looking at and touching your cervical mucus, which describes it best?',
},
excludeExplainer: "You can exclude this value if you don't want to use it for fertility detection",
actionHint: 'Choose values for both "Feeling" and "Texture" to save.'
excludeExplainer:
"You can exclude this value if you don't want to use it for fertility detection",
}
export const desire = {
header: 'Intensity',
explainer: 'How would you rate your sexual desire?'
explainer: 'How would you rate your sexual desire?',
}
export const sex = {
@@ -62,7 +63,7 @@ export const sex = {
solo: 'solo',
partner: 'partner',
},
header: "Activity",
header: 'Activity',
explainer: 'Were you sexually active today?',
}
@@ -78,8 +79,8 @@ export const contraceptives = {
none: 'none',
other: 'other',
},
header: "Contraceptives",
explainer: 'Did you use contraceptives?'
header: 'Contraceptives',
explainer: 'Did you use contraceptives?',
}
export const pain = {
@@ -91,9 +92,9 @@ export const pain = {
nausea: 'nausea',
tenderBreasts: 'tender breasts',
migraine: 'migraine',
other: 'other'
other: 'other',
},
explainer: 'How did your body feel today?'
explainer: 'How did your body feel today?',
}
export const mood = {
@@ -107,34 +108,39 @@ export const mood = {
energetic: 'energetic',
fatigue: 'fatigue',
angry: 'angry',
other: 'other'
other: 'other',
},
explainer: 'How did you feel today?'
explainer: 'How did you feel today?',
}
export const temperature = {
outOfRangeWarning: 'This temperature value is out of the current range for the temperature chart. You can change the range in the settings.',
outOfAbsoluteRangeWarning: 'This temperature value is too high or low to be shown on the temperature chart.',
outOfRangeWarning:
'This temperature value is out of the current range for the temperature chart. You can change the range in the settings.',
outOfAbsoluteRangeWarning:
'This temperature value is too high or low to be shown on the temperature chart.',
temperature: {
header: "Temperature",
explainer: 'Take your temperature right after waking up, before getting out of bed'
header: 'Temperature',
explainer:
'Take your temperature right after waking up, before getting out of bed',
},
time: "Time",
time: 'Time',
note: {
header: "Note",
explainer: 'Is there anything that could have influenced this value, such as bad sleep or alcohol consumption?'
header: 'Note',
explainer:
'Is there anything that could have influenced this value, such as bad sleep or alcohol consumption?',
},
exclude: {
header: "Exclude",
explainer: "You can exclude this value if you don't want to use it for fertility detection"
}
header: 'Exclude',
explainer:
"You can exclude this value if you don't want to use it for fertility detection",
},
}
export const noteExplainer = "Anything you want to add for the day?"
export const noteExplainer = 'Anything you want to add for the day?'
export const general = {
cycleDayNumber: "Cycle day ",
today: "Today"
cycleDayNumber: 'Cycle day ',
today: 'Today',
}
export const sharedDialogs = {
@@ -144,5 +150,5 @@ export const sharedDialogs = {
reallyDeleteData: 'Yes, I am sure',
save: 'Save',
delete: 'Delete',
disabledInfo: 'There is some data missing'
disabledInfo: 'There is some data missing',
}
+1
View File
@@ -4,6 +4,7 @@ export default {
customization: {
title: 'Customization',
trackingCategories: 'Tracking categories',
subheaderSymptoThermalMethod: 'Sympto-thermal method settings',
},
export: {
errors: {
+2 -1
View File
@@ -1,10 +1,11 @@
import { scale } from 'react-native-size-matters'
export default {
zero: '0%',
tiny: scale(4),
small: scale(10),
base: scale(16),
large: scale(20),
symptomTileWidth: '48%',
textWidth: '70%'
textWidth: '70%',
}