Add setting to hide steps

This commit is contained in:
Brandon Presley 2022-09-24 17:29:52 +12:00
parent 3e4dfa5c80
commit 3509aa93f3
4 changed files with 32 additions and 12 deletions

View File

@ -13,6 +13,7 @@ import {MARGIN, PADDING} from './constants';
import MassiveInput from './MassiveInput';
import {updatePlanWorkouts} from './plan.service';
import {addSet, updateManySet, updateSetImage} from './set.service';
import {settings} from './settings.service';
import {WorkoutsPageParams} from './WorkoutsPage';
export default function EditWorkout() {
@ -92,13 +93,15 @@ export default function EditWorkout() {
<View style={{padding: PADDING}}>
<ScrollView style={{height: '90%'}}>
<MassiveInput label="Name" value={name} onChangeText={setName} />
<MassiveInput
selectTextOnFocus={false}
value={steps}
onChangeText={setSteps}
label="Steps"
multiline
/>
{!!settings.steps && (
<MassiveInput
selectTextOnFocus={false}
value={steps}
onChangeText={setSteps}
label="Steps"
multiline
/>
)}
<MassiveInput
value={sets}
onChangeText={setSets}

View File

@ -30,6 +30,7 @@ export default function SettingsPage() {
const [images, setImages] = useState(!!settings.images);
const [showUnit, setShowUnit] = useState(!!settings.showUnit);
const [workouts, setWorkouts] = useState(!!settings.workouts);
const [steps, setSteps] = useState(!!settings.steps);
const {color, setColor} = useContext(CustomTheme);
const {toast} = useContext(SnackbarContext);
@ -50,6 +51,7 @@ export default function SettingsPage() {
showUnit: +showUnit,
color,
workouts: +workouts,
steps: +steps,
});
getSettings();
}, [
@ -62,6 +64,7 @@ export default function SettingsPage() {
showUnit,
color,
workouts,
steps,
]);
const changeAlarmEnabled = useCallback(
@ -124,7 +127,7 @@ export default function SettingsPage() {
(enabled: boolean) => {
setShowUnit(enabled);
if (enabled) toast('Show option to select unit for sets.', 4000);
else toast('Hid the unit option when adding/editing sets.', 4000);
else toast('Hid unit option for sets.', 4000);
},
[toast],
);
@ -132,8 +135,17 @@ export default function SettingsPage() {
const changeWorkouts = useCallback(
(enabled: boolean) => {
setWorkouts(enabled);
if (enabled) toast('Show todays workouts when editing a set.', 4000);
else toast('Stopped showing todays workouts when editing a set.', 4000);
if (enabled) toast('Show workout for sets.', 4000);
else toast('Stopped showing workout for sets.', 4000);
},
[toast],
);
const changeSteps = useCallback(
(enabled: boolean) => {
setSteps(enabled);
if (enabled) toast('Show steps for a workout.', 4000);
else toast('Stopped showing steps for workouts.', 4000);
},
[toast],
);
@ -145,7 +157,8 @@ export default function SettingsPage() {
{name: 'Record notifications', value: notify, onChange: changeNotify},
{name: 'Show images', value: images, onChange: changeImages},
{name: 'Show unit', value: showUnit, onChange: changeUnit},
{name: 'Show todays workout', value: workouts, onChange: changeWorkouts},
{name: 'Show workouts', value: workouts, onChange: changeWorkouts},
{name: 'Show steps', value: steps, onChange: changeSteps},
];
return (
@ -173,7 +186,7 @@ export default function SettingsPage() {
: null}
</Button>
)}
{'color'.includes(search.toLowerCase()) && (
{'theme'.includes(search.toLowerCase()) && (
<Picker
style={{color}}
dropdownIconColor={color}

3
db.ts
View File

@ -97,6 +97,9 @@ const migrations = [
`
ALTER TABLE settings ADD COLUMN workouts BOOLEAN DEFAULT 1
`,
`
ALTER TABLE settings ADD COLUMN steps BOOLEAN DEFAULT 1
`,
];
export let db: SQLiteDatabase;

View File

@ -8,4 +8,5 @@ export default interface Settings {
showUnit?: number;
color?: string;
workouts: number;
steps: number;
}