Hide rest settings in workouts when alarms are off

Closes #83
This commit is contained in:
Brandon Presley 2022-10-04 14:46:15 +13:00
parent 73fb90961e
commit e2c790870b
2 changed files with 28 additions and 20 deletions

View File

@ -146,22 +146,26 @@ export default function EditWorkout() {
keyboardType="numeric" keyboardType="numeric"
onSubmitEditing={() => minutesRef.current?.focus()} onSubmitEditing={() => minutesRef.current?.focus()}
/> />
<MassiveInput {!!settings.alarm && (
innerRef={minutesRef} <>
onSubmitEditing={() => secondsRef.current?.focus()} <MassiveInput
value={minutes} innerRef={minutesRef}
onChangeText={setMinutes} onSubmitEditing={() => secondsRef.current?.focus()}
label="Rest minutes" value={minutes}
keyboardType="numeric" onChangeText={setMinutes}
/> label="Rest minutes"
<MassiveInput keyboardType="numeric"
innerRef={secondsRef} />
value={seconds} <MassiveInput
onChangeText={setSeconds} innerRef={secondsRef}
label="Rest seconds" value={seconds}
keyboardType="numeric" onChangeText={setSeconds}
blurOnSubmit label="Rest seconds"
/> keyboardType="numeric"
blurOnSubmit
/>
</>
)}
{!!settings.images && uri && ( {!!settings.images && uri && (
<TouchableRipple <TouchableRipple
style={{marginBottom: MARGIN}} style={{marginBottom: MARGIN}}

View File

@ -1,5 +1,5 @@
import {NavigationProp, useNavigation} from '@react-navigation/native'; import {NavigationProp, useNavigation} from '@react-navigation/native';
import React, {useCallback, useState} from 'react'; import React, {useCallback, useMemo, useState} from 'react';
import {GestureResponderEvent, Image} from 'react-native'; import {GestureResponderEvent, Image} from 'react-native';
import {List, Menu, Text} from 'react-native-paper'; import {List, Menu, Text} from 'react-native-paper';
import ConfirmDialog from './ConfirmDialog'; import ConfirmDialog from './ConfirmDialog';
@ -35,15 +35,19 @@ export default function WorkoutItem({
[setShowMenu, setAnchor], [setShowMenu, setAnchor],
); );
const minutes = item.minutes?.toString().padStart(2, '0'); const description = useMemo(() => {
const seconds = item.seconds?.toString().padStart(2, '0'); const minutes = item.minutes?.toString().padStart(2, '0');
const seconds = item.seconds?.toString().padStart(2, '0');
if (settings.alarm) return `${item.sets} sets ${minutes}:${seconds} rest`;
return `${item.sets} sets`;
}, [item, settings.alarm]);
return ( return (
<> <>
<List.Item <List.Item
onPress={() => navigation.navigate('EditWorkout', {value: item})} onPress={() => navigation.navigate('EditWorkout', {value: item})}
title={item.name} title={item.name}
description={`${item.sets} sets ${minutes}:${seconds} rest`} description={description}
onLongPress={longPress} onLongPress={longPress}
left={() => left={() =>
!!settings.images && !!settings.images &&