setPromoteModalData(null)}
- fetchEnvironments={() => {}}
- />
- >
- );
-};
-
-export default PromoteVersionButton;
diff --git a/frontend/src/modules/common/components/BasePromoteReleaseButton/components/PromoteVersionButton/PromoteVersionButton.jsx b/frontend/src/modules/common/components/BasePromoteReleaseButton/components/PromoteVersionButton/PromoteVersionButton.jsx
index b75a1a8e32..a0e14f7bb2 100644
--- a/frontend/src/modules/common/components/BasePromoteReleaseButton/components/PromoteVersionButton/PromoteVersionButton.jsx
+++ b/frontend/src/modules/common/components/BasePromoteReleaseButton/components/PromoteVersionButton/PromoteVersionButton.jsx
@@ -7,24 +7,25 @@ import useStore from '@/AppBuilder/_stores/store';
const PromoteVersionButton = () => {
const [promoteModalData, setPromoteModalData] = useState(null);
- const { isSaving, editingVersion, appVersionEnvironment, environments, selectedEnvironment } = useStore(
+ const { isSaving, editingVersion, appVersionEnvironment, environments, selectedEnvironment, currentEnvIndex } = useStore(
(state) => ({
isSaving: state.app.isSaving,
editingVersion: state.currentVersionId,
selectedEnvironment: state.selectedEnvironment,
environments: state.environments,
appVersionEnvironment: state.appVersionEnvironment,
+ currentEnvIndex: state.environments?.findIndex((env) => env?.id === state.appVersionEnvironment?.id),
}),
shallow
);
- const shouldDisablePromote = isSaving || selectedEnvironment?.priority < appVersionEnvironment?.priority;
+ // enable only after the environment details are loaded
+ const shouldDisablePromote = isSaving || selectedEnvironment?.priority < appVersionEnvironment?.priority || !appVersionEnvironment || !environments?.[currentEnvIndex + 1];
const handlePromote = () => {
- const curentEnvIndex = environments.findIndex((env) => env.id === appVersionEnvironment.id);
setPromoteModalData({
current: appVersionEnvironment,
- target: environments[curentEnvIndex + 1],
+ target: environments[currentEnvIndex + 1],
});
};
@@ -54,7 +55,7 @@ const PromoteVersionButton = () => {
data={promoteModalData}
editingVersion={editingVersion}
onClose={() => setPromoteModalData(null)}
- fetchEnvironments={() => {}}
+ fetchEnvironments={() => { }}
/>
>
);
diff --git a/frontend/src/modules/common/components/BasePromoteReleaseButton/components/PromoteVersionButton/components/PromoteConfirmationModal/PromoteConfirmationModal.jsx b/frontend/src/modules/common/components/BasePromoteReleaseButton/components/PromoteVersionButton/components/PromoteConfirmationModal/PromoteConfirmationModal.jsx
index 40abc2cf2d..cae938d130 100644
--- a/frontend/src/modules/common/components/BasePromoteReleaseButton/components/PromoteVersionButton/components/PromoteConfirmationModal/PromoteConfirmationModal.jsx
+++ b/frontend/src/modules/common/components/BasePromoteReleaseButton/components/PromoteVersionButton/components/PromoteConfirmationModal/PromoteConfirmationModal.jsx
@@ -126,7 +126,7 @@ const PromoteConfirmationModal = React.memo(({ data, onClose }) => {
FROM
- {capitalize(data?.current.name)}
+ {capitalize(data?.current?.name)}
@@ -144,11 +144,11 @@ const PromoteConfirmationModal = React.memo(({ data, onClose }) => {
TO
- {capitalize(data?.target.name)}
+ {capitalize(data?.target?.name)}
- {data?.current.name === 'development' && (
+ {data?.current?.name === 'development' && (
You won't be able to edit this version after promotion. Are you sure you want to continue?