diff --git a/src/frontend/src/components/dictComponent/index.tsx b/src/frontend/src/components/dictComponent/index.tsx
index 2d9a84237..057ba599d 100644
--- a/src/frontend/src/components/dictComponent/index.tsx
+++ b/src/frontend/src/components/dictComponent/index.tsx
@@ -1,4 +1,4 @@
-import { useEffect, useRef } from "react";
+import { useEffect } from "react";
import { DictComponentType } from "../../types/components";
import DictAreaModal from "../../modals/dictAreaModal";
@@ -13,7 +13,6 @@ export default function DictComponent({
id = "",
}: DictComponentType): JSX.Element {
// Create a reference to the value
- const ref = useRef(value);
useEffect(() => {
if (disabled) {
@@ -21,10 +20,6 @@ export default function DictComponent({
}
}, [disabled]);
- useEffect(() => {
- // Update the reference value
- ref.current = value;
- }, [value]);
return (
{
onChange(obj);
}}
diff --git a/src/frontend/src/modals/dictAreaModal/index.tsx b/src/frontend/src/modals/dictAreaModal/index.tsx
index 7aee82d14..afcab7857 100644
--- a/src/frontend/src/modals/dictAreaModal/index.tsx
+++ b/src/frontend/src/modals/dictAreaModal/index.tsx
@@ -4,15 +4,15 @@ 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, useRef, useState } from "react";
+import { useEffect, useState } from "react";
import JsonView from "react18-json-view";
import "react18-json-view/src/dark.css";
import "react18-json-view/src/style.css";
import IconComponent from "../../components/genericIconComponent";
-import { Button } from "../../components/ui/button";
import { CODE_DICT_DIALOG_SUBTITLE } from "../../constants/constants";
import { useDarkStore } from "../../stores/darkStore";
import BaseModal from "../baseModal";
+import { cloneDeep } from "lodash";
export default function DictAreaModal({
children,
@@ -25,14 +25,26 @@ export default function DictAreaModal({
}): JSX.Element {
const [open, setOpen] = useState(false);
const isDark = useDarkStore((state) => state.dark);
- const ref = useRef(value);
+ const [myValue, setMyValue] = useState(value);
useEffect(() => {
- if (value) ref.current = value;
- }, [value]);
+ setMyValue(value);
+ }, [value, open]);
return (
-
+ {
+ onChange(myValue);
+ setOpen(false);
+ }
+ : undefined
+ }
+ >
{children}
{
- ref.current = edit["src"];
- }}
onChange={(edit) => {
- ref.current = edit["src"];
+ setMyValue(edit.src);
}}
- src={ref.current}
+ src={cloneDeep(myValue)}
/>
- {onChange && (
-
-
-
- )}
+
);
}