Compare commits

..

6 Commits

Author SHA1 Message Date
bl00dymarie 960a411794 Merge branch 'main' into 'feature/prods'
# Conflicts:
#   components/cycle-day/symptom-edit-view.js
#   i18n/en/cycle-day.js
2024-04-03 19:56:12 +00:00
Liv eda7d9c7f3 Remove line in bleeding and change wording 2024-01-17 15:45:10 +01:00
Liv 8db4424df5 Added disk as option and moved toggle 2024-01-12 21:27:20 +01:00
Liv d822d057a3 Fix spelling symtom -> symptom 2023-11-20 12:14:25 +01:00
Liv 3b797b8500 Fix labels and clean up code 2023-11-20 12:14:14 +01:00
Liv 503ce6e82d Basic working version that includes period products 2023-11-20 12:13:42 +01:00
9 changed files with 50 additions and 91 deletions
+2 -2
View File
@@ -134,8 +134,8 @@ android {
applicationId "com.drip"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 35
versionName "1.2409.26"
versionCode 33
versionName "1.2403.19"
ndk {
abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
}
+10 -1
View File
@@ -23,14 +23,20 @@ const SymptomBox = ({
const { t } = useTranslation(null, { keyPrefix: 'symptoms' })
const isSymptomEdited = editedSymptom === symptom
const isSymptomDisabled = isDateInFuture(date) && symptom !== 'note'
const isExcluded = symptomData !== null ? symptomData.exclude : false
const iconColor = isSymptomDisabled ? Colors.greyLight : Colors.grey
const iconName = `drip-icon-${symptom}`
const symptomNameStyle = [
styles.symptomName,
isSymptomDisabled && styles.symptomNameDisabled,
isExcluded && styles.symptomNameExcluded,
]
const textStyle = [
styles.text,
isSymptomDisabled && styles.textDisabled,
isExcluded && styles.textExcluded,
]
const textStyle = [styles.text, isSymptomDisabled && styles.textDisabled]
return (
<>
@@ -115,6 +121,9 @@ const styles = StyleSheet.create({
textDisabled: {
color: Colors.greyLight,
},
textExcluded: {
color: Colors.grey,
},
})
export default SymptomBox
+21 -20
View File
@@ -117,23 +117,15 @@ const SymptomEditView = ({ date, onClose, symptom, symptomData }) => {
style: styles.input,
textAlignVertical: 'top',
}
{
/* show exclude AppSwitch for bleeding, mucus, cervix, temperature */
}
{
/* but if fertility is off only for bleeding */
}
const excludeToggle = shouldShow(symptomConfig.excludeText) &&
(isBleeding || isFertilityTrackingEnabled) && (
<Segment style={styles.segmentBorder}>
<AppSwitch
onToggle={onExcludeToggle}
text={symptomPage[symptom].excludeText}
value={data.exclude}
/>
</Segment>
)
const excludeToggle = shouldShow(symptomConfig.excludeText) && (
<Segment style={styles.segmentBorder}>
<AppSwitch
onToggle={onExcludeToggle}
text={symptomPage[symptom].excludeText}
value={data.exclude}
/>
</Segment>
)
return (
<AppModal onClose={onSave}>
@@ -197,9 +189,18 @@ const SymptomEditView = ({ date, onClose, symptom, symptomData }) => {
</Segment>
)
})}
{!isBleeding && excludeToggle}
{/* 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}
text={symtomPage[symptom].excludeText}
value={data.exclude}
/>
</Segment>
)}
{shouldShow(symptomConfig.note) && (
<Segment style={styles.segmentBorder}>
<AppText>{symptomPage[symptom].note}</AppText>
+2 -51
View File
@@ -262,51 +262,7 @@ export const symptomPage = {
export const save = {
bleeding: (data, date, shouldDeleteData) => {
const {
value,
pad,
tampon,
underwear,
cup,
softTampon,
disk,
none,
other,
note,
} = data
let { exclude } = data
const isDataEntered = [
'value',
'pad',
'tampon',
'underwear',
'cup',
'softTampon',
'disk',
'none',
'other',
'note',
].some((value) => typeof data[value] === 'number' || data[value] == true)
// covering the case when a bleeding value was entered, "excluded" and saved. But then the bleeding value was deleted again.
exclude = isNumber(value) ? exclude : false
const valuesToSave =
shouldDeleteData || !isDataEntered
? null
: {
exclude,
value,
pad,
tampon,
underwear,
cup,
softTampon,
disk,
none,
other,
note,
}
saveSymptom('bleeding', date, valuesToSave)
saveBoxSymptom(data, date, shouldDeleteData, 'bleeding')
},
cervix: (data, date, shouldDeleteData) => {
const { opening, firmness, position, exclude } = data
@@ -387,12 +343,7 @@ const label = {
bleeding: (bleeding) => {
bleeding = mapRealmObjToJsObj(bleeding)
const bleedingLabel = []
if (
bleeding &&
Object.values({ ...bleeding }).some(
(val) => typeof val === 'number' || val == true
)
) {
if (bleeding && Object.values({ ...bleeding }).some((val) => val)) {
Object.keys(bleeding).forEach((key) => {
if (bleeding[key] != null && key === 'value') {
bleedingLabel.push(
+1 -1
View File
@@ -90,7 +90,7 @@ export function saveSymptom(symptom, date, val) {
let cycleDay = getCycleDay(date)
if (!cycleDay) cycleDay = createCycleDay(date)
db.write(() => {
if (symptom === 'bleeding') {
if (symptom === 'bleeding' && val != null && val.value != null) {
const mensesDaysAfter = getMensesDaysRightAfter(cycleDay)
maybeSetNewCycleStart({
val,
+2 -2
View File
@@ -47,7 +47,7 @@ export const cervix = {
explainer: 'How high up in the vagina is the cervix?',
},
excludeExplainer:
"You can exclude these values if you don't want to use them for fertility detection.",
"You can exclude this value if you don't want to use it for fertility detection.",
}
export const mucus = {
@@ -65,7 +65,7 @@ export const mucus = {
'Looking at and touching your cervical mucus, which describes it best?',
},
excludeExplainer:
"You can exclude these values if you don't want to use them for fertility detection",
"You can exclude this value if you don't want to use it for fertility detection",
}
export const desire = {
+1 -1
View File
@@ -19,7 +19,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.2409.26</string>
<string>1.2403.19</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
+8 -10
View File
@@ -1,9 +1,7 @@
export default function ({
val,
cycleDay,
mensesDaysAfter,
checkIsMensesStart,
val, cycleDay, mensesDaysAfter, checkIsMensesStart
}) {
cycleDay.bleeding = val
// if a bleeding value is deleted or excluded, we need to check if there are
@@ -22,15 +20,15 @@ export default function ({
}
function bleedingValueDeletedOrExluded(val) {
const bleedingDeleted = !val || !(typeof val?.value === 'number')
const bleedingDeleted = !val
const bleedingExcluded = val && val.exclude
return bleedingDeleted || bleedingExcluded
}
function maybeClearOldCycleStarts() {
// if we have a new bleeding day, we need to clear the
// menses start marker from all following days of this
// menses that may have been marked as start before
mensesDaysAfter.forEach((day) => (day.isCycleStart = false))
// if we have a new bleeding day, we need to clear the
// menses start marker from all following days of this
// menses that may have been marked as start before
mensesDaysAfter.forEach(day => day.isCycleStart = false)
}
}
}
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "drip.",
"version": "1.2409.26",
"version": "1.2403.19",
"contributors": [
"Julia Friesel <julia.friesel@gmail.com>",
"Marie Kochsiek",
@@ -12,8 +12,8 @@
"scripts": {
"start": "react-native start",
"android": "react-native run-android",
"ios": "react-native run-ios --simulator=\"iPhone 8 Plus\"",
"ios15": "react-native run-ios --simulator=\"iPhone 15 Plus\"",
"ios": "react-native run-ios --simulator=\"iPhone 15\"",
"iosSE": "react-native run-ios --simulator=\"iPhone SE (2nd generation)\"",
"log": "react-native log-android",
"test": "jest test && yarn lint",
"test-watch": "jest --watch test",