diff --git a/src/frontend/src/components/codeAreaComponent/index.tsx b/src/frontend/src/components/codeAreaComponent/index.tsx
index af599e1d8..cd8a0f77d 100644
--- a/src/frontend/src/components/codeAreaComponent/index.tsx
+++ b/src/frontend/src/components/codeAreaComponent/index.tsx
@@ -18,12 +18,12 @@ export default function CodeAreaComponent({
setOpen,
}: CodeAreaComponentType) {
const [myValue, setMyValue] = useState(
- typeof value == "string" ? value : JSON.stringify(value)
+ typeof value == "string" ? value : JSON.stringify(value),
);
useEffect(() => {
if (disabled && myValue !== "") {
setMyValue("");
- onChange("");
+ onChange("", true);
}
}, [disabled]);
diff --git a/src/frontend/src/components/floatComponent/index.tsx b/src/frontend/src/components/floatComponent/index.tsx
index a4ebf1ae9..8db5b823a 100644
--- a/src/frontend/src/components/floatComponent/index.tsx
+++ b/src/frontend/src/components/floatComponent/index.tsx
@@ -16,7 +16,7 @@ export default function FloatComponent({
// Clear component state
useEffect(() => {
if (disabled && value !== "") {
- onChange("");
+ onChange("", true);
}
}, [disabled]);
diff --git a/src/frontend/src/components/inputComponent/index.tsx b/src/frontend/src/components/inputComponent/index.tsx
index b1b4b9ef9..b285a1874 100644
--- a/src/frontend/src/components/inputComponent/index.tsx
+++ b/src/frontend/src/components/inputComponent/index.tsx
@@ -48,7 +48,7 @@ export default function InputComponent({
// Clear component state
useEffect(() => {
if (disabled && value && onChange && value !== "") {
- onChange("");
+ onChange("", true);
}
}, [disabled]);
diff --git a/src/frontend/src/components/inputFileComponent/index.tsx b/src/frontend/src/components/inputFileComponent/index.tsx
index 688ea8d97..fb83b18fb 100644
--- a/src/frontend/src/components/inputFileComponent/index.tsx
+++ b/src/frontend/src/components/inputFileComponent/index.tsx
@@ -27,7 +27,7 @@ export default function InputFileComponent({
useEffect(() => {
if (disabled && value !== "") {
setMyValue("");
- onChange("");
+ onChange("", true);
onFileChange("");
}
}, [disabled, onChange]);
@@ -106,8 +106,8 @@ export default function InputFileComponent({
editNode
? "input-edit-node input-dialog text-muted-foreground"
: disabled
- ? "input-disable input-dialog primary-input"
- : "input-dialog primary-input text-muted-foreground"
+ ? "input-disable input-dialog primary-input"
+ : "input-dialog primary-input text-muted-foreground"
}
>
{myValue !== "" ? myValue : "No file"}
diff --git a/src/frontend/src/components/inputGlobalComponent/index.tsx b/src/frontend/src/components/inputGlobalComponent/index.tsx
index 3e6b340cb..2ca1aed22 100644
--- a/src/frontend/src/components/inputGlobalComponent/index.tsx
+++ b/src/frontend/src/components/inputGlobalComponent/index.tsx
@@ -19,15 +19,15 @@ export default function InputGlobalComponent({
editNode = false,
}: InputGlobalComponentType): JSX.Element {
const globalVariablesEntries = useGlobalVariablesStore(
- (state) => state.globalVariablesEntries
+ (state) => state.globalVariablesEntries,
);
const getVariableId = useGlobalVariablesStore((state) => state.getVariableId);
const unavaliableFields = useGlobalVariablesStore(
- (state) => state.unavaliableFields
+ (state) => state.unavaliableFields,
);
const removeGlobalVariable = useGlobalVariablesStore(
- (state) => state.removeGlobalVariable
+ (state) => state.removeGlobalVariable,
);
const setErrorData = useAlertStore((state) => state.setErrorData);
@@ -38,7 +38,7 @@ export default function InputGlobalComponent({
data.node?.template[name].load_from_db
) {
setTimeout(() => {
- onChange("");
+ onChange("", true);
setDb(false);
}, 100);
}
@@ -129,7 +129,7 @@ export default function InputGlobalComponent({
@@ -146,8 +146,8 @@ export default function InputGlobalComponent({
onChange(value);
setDb(value !== "" ? true : false);
}}
- onChange={(value) => {
- onChange(value);
+ onChange={(value, skipSnapshot) => {
+ onChange(value, skipSnapshot);
setDb(false);
}}
/>
diff --git a/src/frontend/src/components/intComponent/index.tsx b/src/frontend/src/components/intComponent/index.tsx
index df1fe644d..f0d67a402 100644
--- a/src/frontend/src/components/intComponent/index.tsx
+++ b/src/frontend/src/components/intComponent/index.tsx
@@ -19,7 +19,7 @@ export default function IntComponent({
// Clear component state
useEffect(() => {
if (disabled && value !== "") {
- onChange("");
+ onChange("", true);
}
}, [disabled, onChange]);
diff --git a/src/frontend/src/components/promptComponent/index.tsx b/src/frontend/src/components/promptComponent/index.tsx
index 40b79a4c4..fdde725bd 100644
--- a/src/frontend/src/components/promptComponent/index.tsx
+++ b/src/frontend/src/components/promptComponent/index.tsx
@@ -18,7 +18,7 @@ export default function PromptAreaComponent({
}: PromptAreaComponentType): JSX.Element {
useEffect(() => {
if (disabled && value !== "") {
- onChange("");
+ onChange("", true);
}
}, [disabled]);
diff --git a/src/frontend/src/components/textAreaComponent/index.tsx b/src/frontend/src/components/textAreaComponent/index.tsx
index 513f96c5f..650700f21 100644
--- a/src/frontend/src/components/textAreaComponent/index.tsx
+++ b/src/frontend/src/components/textAreaComponent/index.tsx
@@ -16,7 +16,7 @@ export default function TextAreaComponent({
// Clear text area
useEffect(() => {
if (disabled && value !== "") {
- onChange("");
+ onChange("", true);
}
}, [disabled]);
diff --git a/src/frontend/src/customNodes/genericNode/components/parameterComponent/index.tsx b/src/frontend/src/customNodes/genericNode/components/parameterComponent/index.tsx
index 065ed64e6..dbcb1e3dc 100644
--- a/src/frontend/src/customNodes/genericNode/components/parameterComponent/index.tsx
+++ b/src/frontend/src/customNodes/genericNode/components/parameterComponent/index.tsx
@@ -159,11 +159,12 @@ export default function ParameterComponent({
const handleOnNewValue = async (
newValue: string | string[] | boolean | Object[],
+ skipSnapshot: boolean | undefined = false,
): Promise => {
const nodeTemplate = data.node!.template[name];
const currentValue = nodeTemplate.value;
- if (currentValue !== newValue) {
+ if (currentValue !== newValue && !skipSnapshot) {
takeSnapshot();
}
diff --git a/src/frontend/src/types/components/index.ts b/src/frontend/src/types/components/index.ts
index d883b7014..6b3f9b224 100644
--- a/src/frontend/src/types/components/index.ts
+++ b/src/frontend/src/types/components/index.ts
@@ -10,7 +10,7 @@ export type InputComponentType = {
onBlur?: (event: React.FocusEvent) => void;
value?: string;
disabled?: boolean;
- onChange?: (value: string) => void;
+ onChange?: (value: string, snapshot?: boolean) => void;
password: boolean;
required?: boolean;
isForm?: boolean;
@@ -100,7 +100,7 @@ export type TextAreaComponentType = {
nodeClass?: APIClassType;
setNodeClass?: (value: APIClassType) => void;
disabled: boolean;
- onChange: (value: string[] | string) => void;
+ onChange: (value: string[] | string, skipSnapshot?: boolean) => void;
value: string;
editNode?: boolean;
id?: string;
@@ -112,7 +112,7 @@ export type PromptAreaComponentType = {
nodeClass?: APIClassType;
setNodeClass?: (value: APIClassType, code?: string) => void;
disabled: boolean;
- onChange: (value: string[] | string) => void;
+ onChange: (value: string[] | string, skipSnapshot?: boolean) => void;
value: string;
readonly?: boolean;
editNode?: boolean;
@@ -122,7 +122,7 @@ export type PromptAreaComponentType = {
export type CodeAreaComponentType = {
setOpenModal?: (bool: boolean) => void;
disabled: boolean;
- onChange: (value: string[] | string) => void;
+ onChange: (value: string[] | string, skipSnapshot?: boolean) => void;
value: string;
editNode?: boolean;
nodeClass?: APIClassType;
@@ -137,7 +137,7 @@ export type CodeAreaComponentType = {
export type FileComponentType = {
IOInputProps?;
disabled: boolean;
- onChange: (value: string[] | string) => void;
+ onChange: (value: string[] | string, skipSnapshot?: boolean) => void;
value: string;
fileTypes: Array;
onFileChange: (value: string) => void;
@@ -170,7 +170,7 @@ export type IntComponentType = {
value: string;
disabled?: boolean;
rangeSpec: RangeSpecType;
- onChange: (value: string) => void;
+ onChange: (value: string, skipSnapshot?: boolean) => void;
editNode?: boolean;
id?: string;
};
@@ -178,7 +178,7 @@ export type IntComponentType = {
export type FloatComponentType = {
value: string;
disabled?: boolean;
- onChange: (value: string) => void;
+ onChange: (value: string, skipSnapshot?: boolean) => void;
rangeSpec: RangeSpecType;
editNode?: boolean;
id?: string;