import React from "react"
export const useThings = (props?: any) => {
const append = React.useCallback((args) => {
const { thing, value } = args
if (thing instanceof Array) {
const newValue = [...thing, value]
return newValue
}
if (typeof thing === "object") {
const newChildBasePath = "New Value"
// find increment that thing doesn't already have New Value N+1
let increment = 0
let newPath = newChildBasePath
while (Object.hasOwnProperty.call(thing, newPath) && increment <= 999) {
increment++
newPath = newChildBasePath + " " + increment
}
const newChildPath = newPath
const newValue = { ...thing }
newValue[newChildPath] = value
return newValue
}
}, [])
const ret = {
append,
}
return ret
}