From 031b373bac03543d7e23d3f6ac32a5dd78836df2 Mon Sep 17 00:00:00 2001 From: naman-bruno Date: Wed, 18 Mar 2026 14:49:07 +0530 Subject: [PATCH] fix: clear draft on save and update dependencies in useEffect (#7512) --- .../src/components/EnvironmentVariablesTable/index.js | 3 ++- .../EnvironmentSettings/EnvironmentList/index.js | 6 ++++-- .../WorkspaceEnvironments/EnvironmentList/index.js | 6 ++++-- .../WorkspaceHome/WorkspaceEnvironments/index.js | 7 ++++++- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/packages/bruno-app/src/components/EnvironmentVariablesTable/index.js b/packages/bruno-app/src/components/EnvironmentVariablesTable/index.js index cd216e8f0..17637540f 100644 --- a/packages/bruno-app/src/components/EnvironmentVariablesTable/index.js +++ b/packages/bruno-app/src/components/EnvironmentVariablesTable/index.js @@ -358,6 +358,7 @@ const EnvironmentVariablesTable = ({ onSave(cloneDeep(variablesToSave)) .then(() => { toast.success('Changes saved successfully'); + onDraftClear(); const newValues = [ ...variablesToSave, { @@ -376,7 +377,7 @@ const EnvironmentVariablesTable = ({ console.error(error); toast.error('An error occurred while saving the changes'); }); - }, [formik.values, environment.variables, onSave, setIsModified]); + }, [formik.values, environment.variables, onSave, onDraftClear, setIsModified]); const handleReset = useCallback(() => { const originalVars = environment.variables || []; diff --git a/packages/bruno-app/src/components/Environments/EnvironmentSettings/EnvironmentList/index.js b/packages/bruno-app/src/components/Environments/EnvironmentSettings/EnvironmentList/index.js index 29c36f3d4..744968fd6 100644 --- a/packages/bruno-app/src/components/Environments/EnvironmentSettings/EnvironmentList/index.js +++ b/packages/bruno-app/src/components/Environments/EnvironmentSettings/EnvironmentList/index.js @@ -83,6 +83,8 @@ const EnvironmentList = ({ const envUids = environments ? environments.map((env) => env.uid) : []; const prevEnvUids = usePrevious(envUids); + const environmentsDraftUid = collection?.environmentsDraft?.environmentUid; + const handleDotEnvModifiedChange = useCallback((modified) => { setIsDotEnvModified(modified); if (modified) { @@ -91,10 +93,10 @@ const EnvironmentList = ({ environmentUid: `dotenv:${selectedDotEnvFile}`, variables: [] })); - } else { + } else if (environmentsDraftUid?.startsWith('dotenv:')) { dispatch(clearEnvironmentsDraft({ collectionUid: collection.uid })); } - }, [dispatch, collection.uid, selectedDotEnvFile]); + }, [dispatch, collection.uid, selectedDotEnvFile, environmentsDraftUid]); useEffect(() => { if (dotEnvFiles.length === 0) { diff --git a/packages/bruno-app/src/components/WorkspaceHome/WorkspaceEnvironments/EnvironmentList/index.js b/packages/bruno-app/src/components/WorkspaceHome/WorkspaceEnvironments/EnvironmentList/index.js index b3f72a244..da240e855 100644 --- a/packages/bruno-app/src/components/WorkspaceHome/WorkspaceEnvironments/EnvironmentList/index.js +++ b/packages/bruno-app/src/components/WorkspaceHome/WorkspaceEnvironments/EnvironmentList/index.js @@ -82,6 +82,8 @@ const EnvironmentList = ({ const envUids = environments ? environments.map((env) => env.uid) : []; const prevEnvUids = usePrevious(envUids); + const globalEnvironmentDraftUid = useSelector((state) => state.globalEnvironments.globalEnvironmentDraft?.environmentUid); + const handleDotEnvModifiedChange = useCallback((modified) => { setIsDotEnvModified(modified); if (modified) { @@ -89,10 +91,10 @@ const EnvironmentList = ({ environmentUid: `dotenv:${selectedDotEnvFile}`, variables: [] })); - } else { + } else if (globalEnvironmentDraftUid?.startsWith('dotenv:')) { dispatch(clearGlobalEnvironmentDraft()); } - }, [dispatch, selectedDotEnvFile]); + }, [dispatch, selectedDotEnvFile, globalEnvironmentDraftUid]); useEffect(() => { if (dotEnvFiles.length === 0) { diff --git a/packages/bruno-app/src/components/WorkspaceHome/WorkspaceEnvironments/index.js b/packages/bruno-app/src/components/WorkspaceHome/WorkspaceEnvironments/index.js index 08a3244ee..264c1fb65 100644 --- a/packages/bruno-app/src/components/WorkspaceHome/WorkspaceEnvironments/index.js +++ b/packages/bruno-app/src/components/WorkspaceHome/WorkspaceEnvironments/index.js @@ -6,12 +6,17 @@ import ExportEnvironmentModal from 'components/Environments/Common/ExportEnviron const WorkspaceEnvironments = ({ workspace }) => { const [isModified, setIsModified] = useState(false); - const [selectedEnvironment, setSelectedEnvironment] = useState(null); const [showExportModal, setShowExportModal] = useState(false); const globalEnvironments = useSelector((state) => state.globalEnvironments.globalEnvironments); const activeGlobalEnvironmentUid = useSelector((state) => state.globalEnvironments.activeGlobalEnvironmentUid); + const [selectedEnvironment, setSelectedEnvironment] = useState(() => { + const environments = globalEnvironments || []; + if (!environments.length) return null; + return environments.find((env) => env.uid === activeGlobalEnvironmentUid) || environments[0]; + }); + return (