From b68587f5146f117ba5baaff1d2a361e573c09750 Mon Sep 17 00:00:00 2001 From: Brandon Presley Date: Wed, 15 Nov 2023 11:00:51 +1300 Subject: [PATCH] =?UTF-8?q?Add=20auto=20converter=20-=201.186=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #193 --- EditSet.tsx | 12 ++++++++++-- SettingsPage.tsx | 21 +++++++++++++++++++++ StartPlan.tsx | 18 ++++++++++++++---- android/app/build.gradle | 4 ++-- conversions.ts | 11 +++++++++++ data-source.ts | 2 ++ migrations/1699948105001-auto-convert.ts | 9 +++++++++ package.json | 2 +- settings.ts | 3 +++ 9 files changed, 73 insertions(+), 9 deletions(-) create mode 100644 conversions.ts create mode 100644 migrations/1699948105001-auto-convert.ts diff --git a/EditSet.tsx b/EditSet.tsx index 9c715e4..222ec12 100644 --- a/EditSet.tsx +++ b/EditSet.tsx @@ -30,6 +30,7 @@ import StackHeader from "./StackHeader"; import { toast } from "./toast"; import Select from "./Select"; import { PERMISSIONS, RESULTS, check, request } from "react-native-permissions"; +import { convert } from "./conversions"; export default function EditSet() { const { params } = useRoute>(); @@ -97,12 +98,19 @@ export default function EditSet() { const handleSubmit = async () => { if (!name) return; + let newWeight = Number(weight); + let newUnit = unit; + if (settings.autoConvert && unit !== settings.autoConvert) { + newUnit = settings.autoConvert; + newWeight = convert(newWeight, unit, settings.autoConvert); + } + const newSet: Partial = { id: set.id, name, reps: Number(reps || 0), - weight: Number(weight || 0), - unit, + weight: newWeight, + unit: newUnit, minutes: Number(set.minutes ?? 3), seconds: Number(set.seconds ?? 30), sets: set.sets ?? 3, diff --git a/SettingsPage.tsx b/SettingsPage.tsx index abede86..1be837a 100644 --- a/SettingsPage.tsx +++ b/SettingsPage.tsx @@ -214,6 +214,27 @@ export default function SettingsPage() { /> ), }, + { + name: "Auto convert", + renderItem: (name: string) => ( +