Easily swap between edit/start for plans - 1.137
This commit is contained in:
parent
457134df6b
commit
90db607190
23
EditPlan.tsx
23
EditPlan.tsx
|
@ -6,14 +6,16 @@ import {
|
||||||
} from '@react-navigation/native'
|
} from '@react-navigation/native'
|
||||||
import {useCallback, useEffect, useState} from 'react'
|
import {useCallback, useEffect, useState} from 'react'
|
||||||
import {ScrollView, StyleSheet, View} from 'react-native'
|
import {ScrollView, StyleSheet, View} from 'react-native'
|
||||||
import {Button, Text} from 'react-native-paper'
|
import {Button, IconButton, Text} from 'react-native-paper'
|
||||||
|
import {getLast} from './best.service'
|
||||||
import {MARGIN, PADDING} from './constants'
|
import {MARGIN, PADDING} from './constants'
|
||||||
import {planRepo, setRepo} from './db'
|
import {planRepo, setRepo} from './db'
|
||||||
import {DrawerParamList} from './drawer-param-list'
|
import {defaultSet} from './gym-set'
|
||||||
import {PlanPageParams} from './plan-page-params'
|
import {PlanPageParams} from './plan-page-params'
|
||||||
import StackHeader from './StackHeader'
|
import StackHeader from './StackHeader'
|
||||||
import Switch from './Switch'
|
import Switch from './Switch'
|
||||||
import {DAYS} from './time'
|
import {DAYS} from './time'
|
||||||
|
import useDark from './use-dark'
|
||||||
|
|
||||||
export default function EditPlan() {
|
export default function EditPlan() {
|
||||||
const {params} = useRoute<RouteProp<PlanPageParams, 'EditPlan'>>()
|
const {params} = useRoute<RouteProp<PlanPageParams, 'EditPlan'>>()
|
||||||
|
@ -25,7 +27,8 @@ export default function EditPlan() {
|
||||||
plan.workouts ? plan.workouts.split(',') : [],
|
plan.workouts ? plan.workouts.split(',') : [],
|
||||||
)
|
)
|
||||||
const [names, setNames] = useState<string[]>([])
|
const [names, setNames] = useState<string[]>([])
|
||||||
const navigation = useNavigation<NavigationProp<DrawerParamList>>()
|
const navigation = useNavigation<NavigationProp<PlanPageParams>>()
|
||||||
|
const dark = useDark()
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setRepo
|
setRepo
|
||||||
|
@ -74,8 +77,18 @@ export default function EditPlan() {
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<StackHeader
|
<StackHeader
|
||||||
title={typeof plan.id === 'number' ? 'Edit plan' : 'Add plan'}
|
title={typeof plan.id === 'number' ? 'Edit plan' : 'Add plan'}>
|
||||||
/>
|
<IconButton
|
||||||
|
color={dark ? 'white' : 'white'}
|
||||||
|
onPress={async () => {
|
||||||
|
let first = await getLast(workouts[0])
|
||||||
|
if (!first) first = {...defaultSet, name: workouts[0]}
|
||||||
|
delete first.id
|
||||||
|
navigation.navigate('StartPlan', {plan: params.plan, first})
|
||||||
|
}}
|
||||||
|
icon="play-arrow"
|
||||||
|
/>
|
||||||
|
</StackHeader>
|
||||||
<View style={{padding: PADDING, flex: 1}}>
|
<View style={{padding: PADDING, flex: 1}}>
|
||||||
<ScrollView style={{flex: 1}}>
|
<ScrollView style={{flex: 1}}>
|
||||||
<Text style={styles.title}>Days</Text>
|
<Text style={styles.title}>Days</Text>
|
||||||
|
|
|
@ -1,7 +1,13 @@
|
||||||
import {RouteProp, useFocusEffect, useRoute} from '@react-navigation/native'
|
import {
|
||||||
|
NavigationProp,
|
||||||
|
RouteProp,
|
||||||
|
useFocusEffect,
|
||||||
|
useNavigation,
|
||||||
|
useRoute,
|
||||||
|
} from '@react-navigation/native'
|
||||||
import {useCallback, useMemo, useRef, useState} from 'react'
|
import {useCallback, useMemo, useRef, useState} from 'react'
|
||||||
import {FlatList, NativeModules, TextInput, View} from 'react-native'
|
import {FlatList, NativeModules, TextInput, View} from 'react-native'
|
||||||
import {Button, ProgressBar} from 'react-native-paper'
|
import {Button, IconButton, ProgressBar} from 'react-native-paper'
|
||||||
import AppInput from './AppInput'
|
import AppInput from './AppInput'
|
||||||
import {getBestSet, getLast} from './best.service'
|
import {getBestSet, getLast} from './best.service'
|
||||||
import {PADDING} from './constants'
|
import {PADDING} from './constants'
|
||||||
|
@ -14,6 +20,7 @@ import Settings from './settings'
|
||||||
import StackHeader from './StackHeader'
|
import StackHeader from './StackHeader'
|
||||||
import StartPlanItem from './StartPlanItem'
|
import StartPlanItem from './StartPlanItem'
|
||||||
import {toast} from './toast'
|
import {toast} from './toast'
|
||||||
|
import useDark from './use-dark'
|
||||||
|
|
||||||
export default function StartPlan() {
|
export default function StartPlan() {
|
||||||
const {params} = useRoute<RouteProp<PlanPageParams, 'StartPlan'>>()
|
const {params} = useRoute<RouteProp<PlanPageParams, 'StartPlan'>>()
|
||||||
|
@ -27,6 +34,8 @@ export default function StartPlan() {
|
||||||
const repsRef = useRef<TextInput>(null)
|
const repsRef = useRef<TextInput>(null)
|
||||||
const unitRef = useRef<TextInput>(null)
|
const unitRef = useRef<TextInput>(null)
|
||||||
const workouts = useMemo(() => params.plan.workouts.split(','), [params])
|
const workouts = useMemo(() => params.plan.workouts.split(','), [params])
|
||||||
|
const dark = useDark()
|
||||||
|
const navigation = useNavigation<NavigationProp<PlanPageParams>>()
|
||||||
|
|
||||||
const [selection, setSelection] = useState({
|
const [selection, setSelection] = useState({
|
||||||
start: 0,
|
start: 0,
|
||||||
|
@ -105,7 +114,13 @@ export default function StartPlan() {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<StackHeader title={params.plan.days.replace(/,/g, ', ')} />
|
<StackHeader title={params.plan.days.replace(/,/g, ', ')}>
|
||||||
|
<IconButton
|
||||||
|
color={dark ? 'white' : 'white'}
|
||||||
|
onPress={() => navigation.navigate('EditPlan', {plan: params.plan})}
|
||||||
|
icon="edit"
|
||||||
|
/>
|
||||||
|
</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}}>
|
||||||
<AppInput
|
<AppInput
|
||||||
|
|
|
@ -41,8 +41,8 @@ android {
|
||||||
missingDimensionStrategy "RNNotifications.reactNativeVersion", "reactNative60"
|
missingDimensionStrategy "RNNotifications.reactNativeVersion", "reactNative60"
|
||||||
minSdkVersion rootProject.ext.minSdkVersion
|
minSdkVersion rootProject.ext.minSdkVersion
|
||||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||||
versionCode 36162
|
versionCode 36163
|
||||||
versionName "1.136"
|
versionName "1.137"
|
||||||
buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
|
buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
|
||||||
|
|
||||||
if (isNewArchitectureEnabled()) {
|
if (isNewArchitectureEnabled()) {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "massive",
|
"name": "massive",
|
||||||
"version": "1.136",
|
"version": "1.137",
|
||||||
"private": true,
|
"private": true,
|
||||||
"license": "GPL-3.0-only",
|
"license": "GPL-3.0-only",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user