1
Fork 0
mirror of https://github.com/pds-nest/nest.git synced 2024-11-22 21:14:18 +00:00
pds-2021-g2-nest/code/frontend/src/hooks/useArrayState.js

39 lines
908 B
JavaScript
Raw Normal View History

import { useCallback, useState } from "react"
export default function useArrayState(def) {
const [value, setValue] = useState(def ?? [])
const appendValue = useCallback(
newSingle => {
setValue(
oldArray => [...oldArray, newSingle]
)
},
2021-04-29 03:03:34 +00:00
[]
)
2021-04-29 03:03:34 +00:00
const spliceValue = useCallback(
position => {
setValue(
oldArray => {
// TODO: Hope this doesn't break anything...
oldArray.splice(position, 1)
return oldArray
}
)
2021-04-29 03:03:34 +00:00
},
[]
)
const removeValue = useCallback(
remValue => {
setValue(
oldArray => oldArray.filter(item => item !== remValue)
)
},
[]
)
2021-04-29 03:03:34 +00:00
return {value, setValue, appendValue, spliceValue, removeValue}
}