diff --git a/src/frontend/src/components/codeTabsComponent/index.tsx b/src/frontend/src/components/codeTabsComponent/index.tsx index b304518c2..42e10581e 100644 --- a/src/frontend/src/components/codeTabsComponent/index.tsx +++ b/src/frontend/src/components/codeTabsComponent/index.tsx @@ -842,25 +842,7 @@ export default function CodeTabsComponent({ templateField ].value } - onChange={(target) => { - setData((old) => { - let newInputList = - cloneDeep(old); - newInputList![ - i - ].data.node.template[ - templateField - ].value = target; - return newInputList; - }); - tweaks.buildTweakObject!( - node["data"]["id"], - target, - node.data.node.template[ - templateField - ] - ); - }} + onChange={(target) => {}} /> diff --git a/src/frontend/src/components/dictComponent/index.tsx b/src/frontend/src/components/dictComponent/index.tsx index 5596f9b34..29082f466 100644 --- a/src/frontend/src/components/dictComponent/index.tsx +++ b/src/frontend/src/components/dictComponent/index.tsx @@ -1,4 +1,4 @@ -import { useEffect } from "react"; +import { useEffect, useRef } from "react"; import { DictComponentType } from "../../types/components"; import DictAreaModal from "../../modals/dictAreaModal"; @@ -13,13 +13,15 @@ export default function DictComponent({ }: DictComponentType): JSX.Element { useEffect(() => { if (disabled) { - onChange([""]); + onChange({}); } }, [disabled]); useEffect(() => { if (value) onChange(value); - }, [onChange]); + }, [value]); + + const ref = useRef(value); return (
{ onChange(obj); }} diff --git a/src/frontend/src/modals/ApiModal/index.tsx b/src/frontend/src/modals/ApiModal/index.tsx index 9e94ff98c..446562f66 100644 --- a/src/frontend/src/modals/ApiModal/index.tsx +++ b/src/frontend/src/modals/ApiModal/index.tsx @@ -133,7 +133,7 @@ const ApiModal = forwardRef( changes = changes?.filter((x) => x !== ""); } - if (template.type === "dict") { + if (template.type === "dict" && Array.isArray(changes)) { changes = convertArrayToObj(changes); } diff --git a/src/frontend/src/modals/dictAreaModal/index.tsx b/src/frontend/src/modals/dictAreaModal/index.tsx index b45606b25..dfec9d76e 100644 --- a/src/frontend/src/modals/dictAreaModal/index.tsx +++ b/src/frontend/src/modals/dictAreaModal/index.tsx @@ -4,7 +4,7 @@ import "ace-builds/src-noconflict/mode-python"; import "ace-builds/src-noconflict/theme-github"; import "ace-builds/src-noconflict/theme-twilight"; // import "ace-builds/webpack-resolver"; -import { useEffect, useState } from "react"; +import { useEffect, useRef, useState } from "react"; import JsonView from "react18-json-view"; import "react18-json-view/src/dark.css"; import "react18-json-view/src/style.css"; @@ -19,11 +19,12 @@ export default function DictAreaModal({ value, }): JSX.Element { const [open, setOpen] = useState(false); - const [dictObj, setDictObj] = useState(value); + + const ref = useRef(value); useEffect(() => { - if (value) setDictObj(value); - }, [dictObj]); + if (value) ref.current = value; + }, [ref]); return ( @@ -44,19 +45,19 @@ export default function DictAreaModal({ editable enableClipboard onEdit={(edit) => { - setDictObj(edit["src"]); + ref.current = edit["src"]; }} onChange={(edit) => { - setDictObj(edit["src"]); + ref.current = edit["src"]; }} - src={dictObj} + src={ref.current} />