Add increment/decrement buttons to reps/weight - 1.148
Closes brandon.presley/Massive#164
This commit is contained in:
parent
79cde3a219
commit
331597e3ee
35
EditSet.tsx
35
EditSet.tsx
|
@ -9,7 +9,7 @@ import { format } from "date-fns";
|
||||||
import { useCallback, useRef, useState } from "react";
|
import { useCallback, useRef, useState } from "react";
|
||||||
import { NativeModules, TextInput, View } from "react-native";
|
import { NativeModules, TextInput, View } from "react-native";
|
||||||
import DocumentPicker from "react-native-document-picker";
|
import DocumentPicker from "react-native-document-picker";
|
||||||
import { Button, Card, TouchableRipple } from "react-native-paper";
|
import { Button, Card, IconButton, TouchableRipple } from "react-native-paper";
|
||||||
import AppInput from "./AppInput";
|
import AppInput from "./AppInput";
|
||||||
import ConfirmDialog from "./ConfirmDialog";
|
import ConfirmDialog from "./ConfirmDialog";
|
||||||
import { MARGIN, PADDING } from "./constants";
|
import { MARGIN, PADDING } from "./constants";
|
||||||
|
@ -155,22 +155,44 @@ export default function EditSet() {
|
||||||
onSubmitEditing={() => repsRef.current?.focus()}
|
onSubmitEditing={() => repsRef.current?.focus()}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<View style={{ flexDirection: "row" }}>
|
||||||
<AppInput
|
<AppInput
|
||||||
|
style={{
|
||||||
|
flex: 1,
|
||||||
|
marginBottom: MARGIN,
|
||||||
|
}}
|
||||||
label="Reps"
|
label="Reps"
|
||||||
keyboardType="numeric"
|
keyboardType="numeric"
|
||||||
value={reps}
|
value={reps}
|
||||||
onChangeText={(newReps) => {
|
onChangeText={(newReps) => {
|
||||||
const fixed = fixNumeric(newReps);
|
const fixed = fixNumeric(newReps);
|
||||||
setReps(fixed);
|
setReps(fixed);
|
||||||
if (fixed.length !== newReps.length) toast("Reps must be a number");
|
if (fixed.length !== newReps.length)
|
||||||
|
toast("Reps must be a number");
|
||||||
}}
|
}}
|
||||||
onSubmitEditing={() => weightRef.current?.focus()}
|
onSubmitEditing={() => weightRef.current?.focus()}
|
||||||
selection={selection}
|
selection={selection}
|
||||||
onSelectionChange={(e) => setSelection(e.nativeEvent.selection)}
|
onSelectionChange={(e) => setSelection(e.nativeEvent.selection)}
|
||||||
innerRef={repsRef}
|
innerRef={repsRef}
|
||||||
/>
|
/>
|
||||||
|
<IconButton
|
||||||
|
icon="add"
|
||||||
|
onPress={() => setReps((Number(reps) + 1).toString())}
|
||||||
|
/>
|
||||||
|
<IconButton
|
||||||
|
icon="remove"
|
||||||
|
onPress={() => setReps((Number(reps) - 1).toString())}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
|
||||||
|
<View
|
||||||
|
style={{
|
||||||
|
flexDirection: "row",
|
||||||
|
marginBottom: MARGIN,
|
||||||
|
}}
|
||||||
|
>
|
||||||
<AppInput
|
<AppInput
|
||||||
|
style={{ flex: 1 }}
|
||||||
label="Weight"
|
label="Weight"
|
||||||
keyboardType="numeric"
|
keyboardType="numeric"
|
||||||
value={weight}
|
value={weight}
|
||||||
|
@ -183,6 +205,15 @@ export default function EditSet() {
|
||||||
onSubmitEditing={handleSubmit}
|
onSubmitEditing={handleSubmit}
|
||||||
innerRef={weightRef}
|
innerRef={weightRef}
|
||||||
/>
|
/>
|
||||||
|
<IconButton
|
||||||
|
icon="add"
|
||||||
|
onPress={() => setWeight((Number(weight) + 2.5).toString())}
|
||||||
|
/>
|
||||||
|
<IconButton
|
||||||
|
icon="remove"
|
||||||
|
onPress={() => setWeight((Number(weight) - 2.5).toString())}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
|
||||||
{settings.showUnit && (
|
{settings.showUnit && (
|
||||||
<AppInput
|
<AppInput
|
||||||
|
|
36
EditSets.tsx
36
EditSets.tsx
|
@ -7,7 +7,7 @@ import {
|
||||||
import { useCallback, useState } from "react";
|
import { useCallback, useState } from "react";
|
||||||
import { View } from "react-native";
|
import { View } from "react-native";
|
||||||
import DocumentPicker from "react-native-document-picker";
|
import DocumentPicker from "react-native-document-picker";
|
||||||
import { Button, Card, TouchableRipple } from "react-native-paper";
|
import { Button, Card, IconButton, TouchableRipple } from "react-native-paper";
|
||||||
import { In } from "typeorm";
|
import { In } from "typeorm";
|
||||||
import AppInput from "./AppInput";
|
import AppInput from "./AppInput";
|
||||||
import ConfirmDialog from "./ConfirmDialog";
|
import ConfirmDialog from "./ConfirmDialog";
|
||||||
|
@ -89,7 +89,16 @@ export default function EditSets() {
|
||||||
autoFocus={!name}
|
autoFocus={!name}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<View
|
||||||
|
style={{
|
||||||
|
flexDirection: "row",
|
||||||
|
marginBottom: MARGIN,
|
||||||
|
}}
|
||||||
|
>
|
||||||
<AppInput
|
<AppInput
|
||||||
|
style={{
|
||||||
|
flex: 1,
|
||||||
|
}}
|
||||||
label={`Reps: ${oldReps}`}
|
label={`Reps: ${oldReps}`}
|
||||||
keyboardType="numeric"
|
keyboardType="numeric"
|
||||||
value={reps}
|
value={reps}
|
||||||
|
@ -98,14 +107,39 @@ export default function EditSets() {
|
||||||
onSelectionChange={(e) => setSelection(e.nativeEvent.selection)}
|
onSelectionChange={(e) => setSelection(e.nativeEvent.selection)}
|
||||||
autoFocus={!!name}
|
autoFocus={!!name}
|
||||||
/>
|
/>
|
||||||
|
<IconButton
|
||||||
|
icon="add"
|
||||||
|
onPress={() => setReps((Number(reps) + 1).toString())}
|
||||||
|
/>
|
||||||
|
<IconButton
|
||||||
|
icon="remove"
|
||||||
|
onPress={() => setReps((Number(reps) - 1).toString())}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
|
||||||
|
<View
|
||||||
|
style={{
|
||||||
|
flexDirection: "row",
|
||||||
|
marginBottom: MARGIN,
|
||||||
|
}}
|
||||||
|
>
|
||||||
<AppInput
|
<AppInput
|
||||||
|
style={{ flex: 1 }}
|
||||||
label={`Weights: ${weights}`}
|
label={`Weights: ${weights}`}
|
||||||
keyboardType="numeric"
|
keyboardType="numeric"
|
||||||
value={weight}
|
value={weight}
|
||||||
onChangeText={setWeight}
|
onChangeText={setWeight}
|
||||||
onSubmitEditing={handleSubmit}
|
onSubmitEditing={handleSubmit}
|
||||||
/>
|
/>
|
||||||
|
<IconButton
|
||||||
|
icon="add"
|
||||||
|
onPress={() => setWeight((Number(weight) + 2.5).toString())}
|
||||||
|
/>
|
||||||
|
<IconButton
|
||||||
|
icon="remove"
|
||||||
|
onPress={() => setWeight((Number(weight) - 2.5).toString())}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
|
||||||
{settings.showUnit && (
|
{settings.showUnit && (
|
||||||
<AppInput
|
<AppInput
|
||||||
|
|
|
@ -10,7 +10,7 @@ import { FlatList, NativeModules, TextInput, View } from "react-native";
|
||||||
import { Button, IconButton, ProgressBar } from "react-native-paper";
|
import { Button, IconButton, ProgressBar } from "react-native-paper";
|
||||||
import AppInput from "./AppInput";
|
import AppInput from "./AppInput";
|
||||||
import { getBestSet } from "./best.service";
|
import { getBestSet } from "./best.service";
|
||||||
import { PADDING } from "./constants";
|
import { MARGIN, PADDING } from "./constants";
|
||||||
import CountMany from "./count-many";
|
import CountMany from "./count-many";
|
||||||
import { AppDataSource } from "./data-source";
|
import { AppDataSource } from "./data-source";
|
||||||
import { getNow, setRepo, settingsRepo } from "./db";
|
import { getNow, setRepo, settingsRepo } from "./db";
|
||||||
|
@ -126,8 +126,15 @@ export default function StartPlan() {
|
||||||
</StackHeader>
|
</StackHeader>
|
||||||
<View style={{ padding: PADDING, flex: 1, flexDirection: "column" }}>
|
<View style={{ padding: PADDING, flex: 1, flexDirection: "column" }}>
|
||||||
<View style={{ flex: 1 }}>
|
<View style={{ flex: 1 }}>
|
||||||
|
<View
|
||||||
|
style={{
|
||||||
|
flexDirection: "row",
|
||||||
|
marginBottom: MARGIN,
|
||||||
|
}}
|
||||||
|
>
|
||||||
<AppInput
|
<AppInput
|
||||||
label="Reps"
|
label="Reps"
|
||||||
|
style={{ flex: 1 }}
|
||||||
keyboardType="numeric"
|
keyboardType="numeric"
|
||||||
value={reps}
|
value={reps}
|
||||||
onChangeText={(newReps) => {
|
onChangeText={(newReps) => {
|
||||||
|
@ -141,8 +148,25 @@ export default function StartPlan() {
|
||||||
onSelectionChange={(e) => setSelection(e.nativeEvent.selection)}
|
onSelectionChange={(e) => setSelection(e.nativeEvent.selection)}
|
||||||
innerRef={repsRef}
|
innerRef={repsRef}
|
||||||
/>
|
/>
|
||||||
|
<IconButton
|
||||||
|
icon="add"
|
||||||
|
onPress={() => setReps((Number(reps) + 1).toString())}
|
||||||
|
/>
|
||||||
|
<IconButton
|
||||||
|
icon="remove"
|
||||||
|
onPress={() => setReps((Number(reps) - 1).toString())}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
|
||||||
|
<View
|
||||||
|
style={{
|
||||||
|
flexDirection: "row",
|
||||||
|
marginBottom: MARGIN,
|
||||||
|
}}
|
||||||
|
>
|
||||||
<AppInput
|
<AppInput
|
||||||
label="Weight"
|
label="Weight"
|
||||||
|
style={{ flex: 1 }}
|
||||||
keyboardType="numeric"
|
keyboardType="numeric"
|
||||||
value={weight}
|
value={weight}
|
||||||
onChangeText={(newWeight) => {
|
onChangeText={(newWeight) => {
|
||||||
|
@ -155,6 +179,16 @@ export default function StartPlan() {
|
||||||
innerRef={weightRef}
|
innerRef={weightRef}
|
||||||
blurOnSubmit
|
blurOnSubmit
|
||||||
/>
|
/>
|
||||||
|
<IconButton
|
||||||
|
icon="add"
|
||||||
|
onPress={() => setWeight((Number(weight) + 2.5).toString())}
|
||||||
|
/>
|
||||||
|
<IconButton
|
||||||
|
icon="remove"
|
||||||
|
onPress={() => setWeight((Number(weight) - 2.5).toString())}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
|
||||||
{settings?.showUnit && (
|
{settings?.showUnit && (
|
||||||
<AppInput
|
<AppInput
|
||||||
autoCapitalize="none"
|
autoCapitalize="none"
|
||||||
|
|
|
@ -85,8 +85,8 @@ android {
|
||||||
applicationId "com.massive"
|
applicationId "com.massive"
|
||||||
minSdkVersion rootProject.ext.minSdkVersion
|
minSdkVersion rootProject.ext.minSdkVersion
|
||||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||||
versionCode 36173
|
versionCode 36174
|
||||||
versionName "1.147"
|
versionName "1.148"
|
||||||
}
|
}
|
||||||
signingConfigs {
|
signingConfigs {
|
||||||
release {
|
release {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "massive",
|
"name": "massive",
|
||||||
"version": "1.147",
|
"version": "1.148",
|
||||||
"private": true,
|
"private": true,
|
||||||
"license": "GPL-3.0-only",
|
"license": "GPL-3.0-only",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user