Add some useCallbacks
This commit is contained in:
parent
da4484cf4f
commit
8019df7418
13
EditSet.tsx
13
EditSet.tsx
|
@ -43,12 +43,10 @@ export default function EditSet() {
|
||||||
[settings],
|
[settings],
|
||||||
)
|
)
|
||||||
|
|
||||||
const add = useCallback(
|
const added = useCallback(
|
||||||
async (value: GymSet) => {
|
async (value: GymSet) => {
|
||||||
startTimer(value.name)
|
startTimer(value.name)
|
||||||
console.log(`${EditSet.name}.add`, {set: value})
|
console.log(`${EditSet.name}.add`, {set: value})
|
||||||
const result = await setRepo.save(value)
|
|
||||||
console.log({result})
|
|
||||||
if (!settings.notify) return
|
if (!settings.notify) return
|
||||||
if (
|
if (
|
||||||
value.weight > set.weight ||
|
value.weight > set.weight ||
|
||||||
|
@ -59,20 +57,19 @@ export default function EditSet() {
|
||||||
[startTimer, set, settings],
|
[startTimer, set, settings],
|
||||||
)
|
)
|
||||||
|
|
||||||
const save = useCallback(
|
const saved = useCallback(
|
||||||
async (value: GymSet) => {
|
async (value: GymSet) => {
|
||||||
if (typeof set.id === 'number') await setRepo.save(value)
|
if (typeof set.id !== 'number') added(value)
|
||||||
else await add(value)
|
|
||||||
navigation.goBack()
|
navigation.goBack()
|
||||||
},
|
},
|
||||||
[add, set.id, navigation],
|
[added, set.id, navigation],
|
||||||
)
|
)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<StackHeader title="Edit set" />
|
<StackHeader title="Edit set" />
|
||||||
<View style={{padding: PADDING, flex: 1}}>
|
<View style={{padding: PADDING, flex: 1}}>
|
||||||
{settings && <SetForm settings={settings} save={save} set={set} />}
|
{settings && <SetForm settings={settings} onSaved={saved} set={set} />}
|
||||||
</View>
|
</View>
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
|
|
19
SetForm.tsx
19
SetForm.tsx
|
@ -12,12 +12,12 @@ import {format} from './time'
|
||||||
import {toast} from './toast'
|
import {toast} from './toast'
|
||||||
|
|
||||||
export default function SetForm({
|
export default function SetForm({
|
||||||
save,
|
onSaved,
|
||||||
set,
|
set,
|
||||||
settings,
|
settings,
|
||||||
}: {
|
}: {
|
||||||
set: GymSet
|
set: GymSet
|
||||||
save: (set: GymSet) => void
|
onSaved: (set: GymSet) => void
|
||||||
settings: Settings
|
settings: Settings
|
||||||
}) {
|
}) {
|
||||||
const [name, setName] = useState(set.name)
|
const [name, setName] = useState(set.name)
|
||||||
|
@ -44,12 +44,12 @@ export default function SetForm({
|
||||||
|
|
||||||
console.log(`${SetForm.name}.handleSubmit:`, {image})
|
console.log(`${SetForm.name}.handleSubmit:`, {image})
|
||||||
const [{now}] = await getNow()
|
const [{now}] = await getNow()
|
||||||
save({
|
const saved = await setRepo.save({
|
||||||
|
id: set.id,
|
||||||
name,
|
name,
|
||||||
created: now,
|
created: now,
|
||||||
reps: Number(reps),
|
reps: Number(reps),
|
||||||
weight: Number(weight),
|
weight: Number(weight),
|
||||||
id: set.id,
|
|
||||||
unit,
|
unit,
|
||||||
image,
|
image,
|
||||||
minutes: Number(set.minutes ?? 3),
|
minutes: Number(set.minutes ?? 3),
|
||||||
|
@ -57,19 +57,20 @@ export default function SetForm({
|
||||||
sets: set.sets ?? 3,
|
sets: set.sets ?? 3,
|
||||||
hidden: false,
|
hidden: false,
|
||||||
})
|
})
|
||||||
|
onSaved(saved)
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleName = (value: string) => {
|
const handleName = useCallback((value: string) => {
|
||||||
setName(value.replace(/,|'/g, ''))
|
setName(value.replace(/,|'/g, ''))
|
||||||
if (value.match(/,|'/))
|
if (value.match(/,|'/))
|
||||||
toast('Commas and single quotes would break CSV exports')
|
toast('Commas and single quotes would break CSV exports')
|
||||||
}
|
}, [])
|
||||||
|
|
||||||
const handleUnit = (value: string) => {
|
const handleUnit = useCallback((value: string) => {
|
||||||
setUnit(value.replace(/,|'/g, ''))
|
setUnit(value.replace(/,|'/g, ''))
|
||||||
if (value.match(/,|'/))
|
if (value.match(/,|'/))
|
||||||
toast('Commas and single quotes would break CSV exports')
|
toast('Commas and single quotes would break CSV exports')
|
||||||
}
|
}, [])
|
||||||
|
|
||||||
const changeImage = useCallback(async () => {
|
const changeImage = useCallback(async () => {
|
||||||
const {fileCopyUri} = await DocumentPicker.pickSingle({
|
const {fileCopyUri} = await DocumentPicker.pickSingle({
|
||||||
|
@ -148,6 +149,7 @@ export default function SetForm({
|
||||||
</Button>
|
</Button>
|
||||||
)}
|
)}
|
||||||
</View>
|
</View>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
disabled={!name}
|
disabled={!name}
|
||||||
mode="contained"
|
mode="contained"
|
||||||
|
@ -155,6 +157,7 @@ export default function SetForm({
|
||||||
onPress={handleSubmit}>
|
onPress={handleSubmit}>
|
||||||
Save
|
Save
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
<ConfirmDialog
|
<ConfirmDialog
|
||||||
title="Remove image"
|
title="Remove image"
|
||||||
onOk={handleRemove}
|
onOk={handleRemove}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user