Add toggle for hiding maximum set count

Closes #90
This commit is contained in:
Brandon Presley 2022-10-16 16:54:20 +13:00
parent 3714db438e
commit 77db34b310
6 changed files with 44 additions and 19 deletions

View File

@ -138,14 +138,16 @@ export default function EditWorkout() {
onSubmitEditing={() => setsRef.current?.focus()}
/>
)}
<MassiveInput
innerRef={setsRef}
value={sets}
onChangeText={setSets}
label="Sets per workout"
keyboardType="numeric"
onSubmitEditing={() => minutesRef.current?.focus()}
/>
{!!settings.showSets && (
<MassiveInput
innerRef={setsRef}
value={sets}
onChangeText={setSets}
label="Sets per workout"
keyboardType="numeric"
onSubmitEditing={() => minutesRef.current?.focus()}
/>
)}
{!!settings.alarm && (
<>
<MassiveInput

View File

@ -30,6 +30,7 @@ export default function SettingsPage() {
const [date, setDate] = useState(settings.date || '%Y-%m-%d %H:%M');
const [theme, setTheme] = useState(settings.theme || 'system');
const [showDate, setShowDate] = useState(!!settings.showDate);
const [showSets, setShowSets] = useState(!!settings.showSets);
const {color, setColor} = useColor();
const {toast} = useSnackbar();
@ -52,6 +53,7 @@ export default function SettingsPage() {
date,
showDate: +showDate,
theme,
showSets: +showSets,
});
getSettings().then(setSettings);
}, [
@ -67,6 +69,7 @@ export default function SettingsPage() {
date,
showDate,
theme,
showSets,
]);
const changeAlarmEnabled = useCallback(
@ -143,6 +146,15 @@ export default function SettingsPage() {
[toast],
);
const changeShowSets = useCallback(
(enabled: boolean) => {
setShowSets(enabled);
if (enabled) toast('Show maximum sets for workouts.', 4000);
else toast('Stopped showing maximum sets for workouts.', 4000);
},
[toast],
);
const switches: Input<boolean>[] = [
{name: 'Rest timers', value: alarm, onChange: changeAlarmEnabled},
{name: 'Vibrate', value: vibrate, onChange: changeVibrate},
@ -151,6 +163,7 @@ export default function SettingsPage() {
{name: 'Show unit', value: showUnit, onChange: changeUnit},
{name: 'Show steps', value: steps, onChange: changeSteps},
{name: 'Show date', value: showDate, onChange: changeShowDate},
{name: 'Show sets', value: showSets, onChange: changeShowSets},
];
return (

View File

@ -125,11 +125,14 @@ export default function StartPlan() {
const getDescription = useCallback(
(countName: string) => {
const count = counts?.find(c => c.name === countName);
console.log(`${StartPlan.name}:`, {count, countName});
if (!distinctSets) return;
const distinct = distinctSets.find(d => d.name === countName);
return `${count?.total || 0} / ${distinct?.sets}`;
console.log(`${StartPlan.name}:`, {distinct});
if (settings.showSets) return `${count?.total || 0} / ${distinct?.sets}`;
return count?.total || '0';
},
[counts, distinctSets],
[counts, distinctSets, settings.showSets],
);
return (

View File

@ -37,9 +37,12 @@ export default function WorkoutItem({
const description = useMemo(() => {
const seconds = item.seconds?.toString().padStart(2, '0');
if (settings.alarm) return `${item.sets} x ${item.minutes || 0}:${seconds}`;
if (settings.alarm && settings.showSets)
return `${item.sets} x ${item.minutes || 0}:${seconds}`;
else if (settings.alarm && !settings.showSets)
return `${item.minutes || 0}:${seconds}`;
return `${item.sets}`;
}, [item, settings.alarm]);
}, [item, settings]);
return (
<>

17
db.ts
View File

@ -28,9 +28,9 @@ const migrations = [
CREATE TABLE IF NOT EXISTS settings (
minutes INTEGER NOT NULL DEFAULT 3,
seconds INTEGER NOT NULL DEFAULT 30,
alarm BOOLEAN NOT NULL DEFAULT false,
vibrate BOOLEAN NOT NULL DEFAULT true,
predict BOOLEAN NOT NULL DEFAULT true,
alarm BOOLEAN NOT NULL DEFAULT 0,
vibrate BOOLEAN NOT NULL DEFAULT 1,
predict BOOLEAN NOT NULL DEFAULT 1,
sets INTEGER NOT NULL DEFAULT 3
)
`,
@ -42,16 +42,16 @@ const migrations = [
)
`,
`
ALTER TABLE sets ADD COLUMN hidden DEFAULT false
ALTER TABLE sets ADD COLUMN hidden DEFAULT 0
`,
`
ALTER TABLE settings ADD COLUMN notify DEFAULT false
ALTER TABLE settings ADD COLUMN notify DEFAULT 0
`,
`
ALTER TABLE sets ADD COLUMN image TEXT NULL
`,
`
ALTER TABLE settings ADD COLUMN images BOOLEAN DEFAULT false
ALTER TABLE settings ADD COLUMN images BOOLEAN DEFAULT 0
`,
`
SELECT * FROM settings LIMIT 1
@ -75,7 +75,7 @@ const migrations = [
ALTER TABLE sets ADD COLUMN seconds INTEGER NOT NULL DEFAULT 30
`,
`
ALTER TABLE settings ADD COLUMN showUnit BOOLEAN DEFAULT true
ALTER TABLE settings ADD COLUMN showUnit BOOLEAN DEFAULT 1
`,
`
ALTER TABLE sets ADD COLUMN steps TEXT NULL
@ -115,6 +115,9 @@ const migrations = [
`
ALTER TABLE settings ADD COLUMN theme TEXT
`,
`
ALTER TABLE settings ADD COLUMN showSets BOOLEAN DEFAULT 1
`,
];
export let db: SQLiteDatabase;

View File

@ -11,4 +11,5 @@ export default interface Settings {
date?: string;
showDate: number;
theme?: 'system' | 'dark' | 'light';
showSets?: number;
}