diff --git a/frontend/src/Editor/AppVersionsManager/CreateVersionModal.jsx b/frontend/src/Editor/AppVersionsManager/CreateVersionModal.jsx index 97dea13661..8669c2878b 100644 --- a/frontend/src/Editor/AppVersionsManager/CreateVersionModal.jsx +++ b/frontend/src/Editor/AppVersionsManager/CreateVersionModal.jsx @@ -99,7 +99,7 @@ export const CreateVersion = ({ options={options} defaultValue={options[options.length - 1]} onChange={(version) => { - setAppDefinitionFromVersion(version); + setAppDefinitionFromVersion(version, false); }} useMenuPortal={false} width="100%" diff --git a/frontend/src/Editor/Editor.jsx b/frontend/src/Editor/Editor.jsx index 9716b3c7a8..669fb4df00 100644 --- a/frontend/src/Editor/Editor.jsx +++ b/frontend/src/Editor/Editor.jsx @@ -480,21 +480,26 @@ class EditorComponent extends React.Component { ); }; - setAppDefinitionFromVersion = (version) => { - this.appDefinitionChanged(defaults(version.definition, this.defaultDefinition), { - skipAutoSave: true, - skipYmapUpdate: true, - versionChanged: true, - }); - this.setState({ - editingVersion: version, - isSaving: false, - }); - - this.saveEditingVersion(); - this.fetchDataSources(); - this.fetchDataQueries(); - this.initComponentVersioning(); + setAppDefinitionFromVersion = (version, shouldWeEditVersion = true) => { + if (version?.id !== this.state.editingVersion?.id) { + this.appDefinitionChanged(defaults(version.definition, this.defaultDefinition), { + skipAutoSave: true, + skipYmapUpdate: true, + versionChanged: true, + }); + this.setState( + { + editingVersion: version, + isSaving: false, + }, + () => { + shouldWeEditVersion && this.saveEditingVersion(); + this.fetchDataSources(); + this.fetchDataQueries(); + this.initComponentVersioning(); + } + ); + } }; /**