diff --git a/remix/app/components/Thingtime/Thingtime.tsx b/remix/app/components/Thingtime/Thingtime.tsx index 83890d0..115eb2d 100644 --- a/remix/app/components/Thingtime/Thingtime.tsx +++ b/remix/app/components/Thingtime/Thingtime.tsx @@ -28,7 +28,7 @@ export const Thingtime = (props) => { // and add button to expand circular reference // up to 1 level deep - const { thingtime, setThingtime, loading } = useThingtime() + const { thingtime, setThingtime, getThingtime, loading } = useThingtime() const [uuid, setUuid] = React.useState(undefined) @@ -106,8 +106,12 @@ export const Thingtime = (props) => { return props.thing }, [props.thing, childrenRef.current]) + const path = React.useMemo(() => { + return props?.path?.key || props?.path || "" + }, [props?.path]) + const fullPath = React.useMemo(() => { - const ret = props?.fullPath || props?.path + const ret = props?.fullPath || props?.path?.key || props?.path // store this thing in the global db try { @@ -346,6 +350,25 @@ export const Thingtime = (props) => { [fullPath, setThingtime] ) + const resetValue = React.useCallback(() => { + updateValue({ value: null }) + }, [updateValue]) + + const deleteValue = React.useCallback(() => { + // use parent path to clone parent object but without this key + const parentPath = fullPath.split(".").slice(0, -1).join(".") + const parent = getThingtime(parentPath) + const clone = { ...parent } + + console.log("nik parentPath", parentPath) + console.log("nik path", path) + console.log("nik clone", clone) + + delete clone[path] + + setThingtime(parentPath, clone) + }, [fullPath, path, getThingtime, setThingtime]) + const atomicValue = React.useMemo(() => { if (props?.edit) { if (type === "boolean") { @@ -616,10 +639,22 @@ export const Thingtime = (props) => { opacity={showContextIcon ? 1 : 0} cursor="pointer" transition="all 0.2s ease-in-out" + onClick={resetValue} > )} + {pathDom && ( + + + + )} {/* {showContextMenu && contextMenu} */}