diff --git a/app/client/src/git/components/OpsModal/TabMerge/TabMergeView.tsx b/app/client/src/git/components/OpsModal/TabMerge/TabMergeView.tsx index eef1529ac5..9f90411a2b 100644 --- a/app/client/src/git/components/OpsModal/TabMerge/TabMergeView.tsx +++ b/app/client/src/git/components/OpsModal/TabMerge/TabMergeView.tsx @@ -80,6 +80,7 @@ interface TabMergeViewProps { mergeStatus: FetchMergeStatusResponseData | null; protectedBranches: FetchProtectedBranchesResponseData | null; resetMergeState: () => void; + resetMergeSuccessState: () => void; } export default function TabMergeView({ @@ -99,6 +100,7 @@ export default function TabMergeView({ mergeStatus = null, protectedBranches = null, resetMergeState = noop, + resetMergeSuccessState = noop, }: TabMergeViewProps) { const [selectedBranchOption, setSelectedBranchOption] = useState(); @@ -208,9 +210,15 @@ export default function TabMergeView({ // when user selects a branch to merge if (currentBranch && selectedBranchOption?.value) { fetchMergeStatus(currentBranch, selectedBranchOption?.value); + resetMergeSuccessState(); } }, - [currentBranch, selectedBranchOption?.value, fetchMergeStatus], + [ + currentBranch, + selectedBranchOption?.value, + fetchMergeStatus, + resetMergeSuccessState, + ], ); useEffect( diff --git a/app/client/src/git/components/OpsModal/TabMerge/index.tsx b/app/client/src/git/components/OpsModal/TabMerge/index.tsx index 0bb0be8069..dcedd36aca 100644 --- a/app/client/src/git/components/OpsModal/TabMerge/index.tsx +++ b/app/client/src/git/components/OpsModal/TabMerge/index.tsx @@ -16,6 +16,7 @@ export default function TabMerge() { mergeError, mergeStatus, resetMergeState, + resetMergeSuccessState, } = useMerge(); const { isFetchStatusLoading, status } = useStatus(); const { branches, currentBranch, fetchBranches, isFetchBranchesLoading } = @@ -42,6 +43,7 @@ export default function TabMerge() { mergeStatus={mergeStatus} protectedBranches={protectedBranches} resetMergeState={resetMergeState} + resetMergeSuccessState={resetMergeSuccessState} /> ); } diff --git a/app/client/src/git/hooks/useMerge.ts b/app/client/src/git/hooks/useMerge.ts index 1cdbadca28..444d513666 100644 --- a/app/client/src/git/hooks/useMerge.ts +++ b/app/client/src/git/hooks/useMerge.ts @@ -66,6 +66,12 @@ export default function useMerge() { } }, [artifactDef, dispatch]); + const resetMergeSuccessState = useCallback(() => { + if (artifactDef) { + dispatch(gitArtifactActions.resetMergeSuccessState({ artifactDef })); + } + }, [artifactDef, dispatch]); + return { isMergeLoading: mergeState?.loading ?? false, mergeError: mergeState?.error ?? null, @@ -77,5 +83,6 @@ export default function useMerge() { clearMergeStatus, isMergeSuccess: isMergeSuccess ?? false, resetMergeState, + resetMergeSuccessState, }; } diff --git a/app/client/src/git/store/actions/mergeActions.ts b/app/client/src/git/store/actions/mergeActions.ts index 035651c1bd..15f7c1a33d 100644 --- a/app/client/src/git/store/actions/mergeActions.ts +++ b/app/client/src/git/store/actions/mergeActions.ts @@ -40,3 +40,9 @@ export const resetMergeStateAction = createArtifactAction((state) => { return state; }); + +export const resetMergeSuccessAction = createArtifactAction((state) => { + state.ui.mergeSuccess = false; + + return state; +}); diff --git a/app/client/src/git/store/gitArtifactSlice.ts b/app/client/src/git/store/gitArtifactSlice.ts index 7109bcfbfe..e3ad784a29 100644 --- a/app/client/src/git/store/gitArtifactSlice.ts +++ b/app/client/src/git/store/gitArtifactSlice.ts @@ -85,6 +85,7 @@ import { mergeInitAction, mergeSuccessAction, resetMergeStateAction, + resetMergeSuccessAction, } from "./actions/mergeActions"; import { pollAutocommitProgressStopAction, @@ -192,6 +193,7 @@ export const gitArtifactSlice = createSlice({ mergeSuccess: mergeSuccessAction, mergeError: mergeErrorAction, resetMergeState: resetMergeStateAction, + resetMergeSuccessState: resetMergeSuccessAction, pullInit: pullInitAction, pullSuccess: pullSuccessAction, pullError: pullErrorAction,