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}
/>