Add select all button

Very useful final addition to the multi edit/delete function.
Typically a user will search for certain criteria, and then select
them all to be removed/edited. For example, if yesterdays sets were all
10x150kg deadlifts, but you review your form video and decide the form
sucked, you would want to mass edit them to lower the weight/reps (or
maybe delete them). This way you won't have these invalid entries
ruining all your progress graphs (showing false progress).
This commit is contained in:
Brandon Presley 2022-12-22 17:08:01 +13:00
parent fb19685bb5
commit e5d9f5fa92
3 changed files with 18 additions and 0 deletions

View File

@ -8,12 +8,14 @@ export default function ListMenu({
onCopy,
onClear,
onDelete,
onSelect,
ids,
}: {
onEdit: () => void
onCopy: () => void
onClear: () => void
onDelete: () => void
onSelect: () => void
ids?: number[]
}) {
const [showMenu, setShowMenu] = useState(false)
@ -41,6 +43,11 @@ export default function ListMenu({
onDelete()
}
const select = () => {
setShowMenu(false)
onSelect()
}
return (
<Menu
visible={showMenu}
@ -52,6 +59,7 @@ export default function ListMenu({
icon="more-vert"
/>
}>
<Menu.Item icon="done-all" title="Select all" onPress={select} />
<Menu.Item
icon="edit"
title="Edit"

View File

@ -78,6 +78,10 @@ export default function PlanList() {
setIds([])
}, [ids, refresh, term])
const select = useCallback(() => {
setIds(plans.map(plan => plan.id))
}, [plans])
return (
<>
<DrawerHeader name="Plans">
@ -87,6 +91,7 @@ export default function PlanList() {
onDelete={remove}
onEdit={edit}
ids={ids}
onSelect={select}
/>
</DrawerHeader>
<Page onAdd={onAdd} term={term} search={search}>

View File

@ -124,6 +124,10 @@ export default function SetList() {
await refresh(term)
}, [ids, refresh, term])
const select = useCallback(() => {
setIds(sets.map(set => set.id))
}, [sets])
return (
<>
<DrawerHeader name="Home">
@ -133,6 +137,7 @@ export default function SetList() {
onDelete={remove}
onEdit={edit}
ids={ids}
onSelect={select}
/>
</DrawerHeader>