From 9314bde15bf1e4624346a5e1cf191064c01c259a Mon Sep 17 00:00:00 2001 From: achraf hafedh Date: Wed, 15 Apr 2026 16:53:27 +0200 Subject: [PATCH] feat(procedures): redirect MFA disable flow to beta manager based on feature flag ref: #MANAGER-21010 Signed-off-by: achraf hafedh --- .../src/pages/disableMFA/DisableMFA.page.tsx | 30 ++++++++++++++++++- .../procedures/src/routes/mfa.constants.ts | 1 + 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/packages/manager/apps/procedures/src/pages/disableMFA/DisableMFA.page.tsx b/packages/manager/apps/procedures/src/pages/disableMFA/DisableMFA.page.tsx index bdc4bc7c68d4..09ba95fd484f 100644 --- a/packages/manager/apps/procedures/src/pages/disableMFA/DisableMFA.page.tsx +++ b/packages/manager/apps/procedures/src/pages/disableMFA/DisableMFA.page.tsx @@ -4,11 +4,18 @@ import { Outlet, useLocation, useNavigate } from 'react-router-dom'; import { AxiosError } from 'axios'; +import { useFeatureAvailability } from '@ovh-ux/manager-react-components'; + import { SkeletonLoading } from '@/components/Loading/SkeletonLoading'; import { PageLayout } from '@/components/PageLayout/PageLayout.component'; import { SessionModals } from '@/context/User/modals/SessionModals'; import { useProcedures } from '@/data/hooks/useProcedures'; -import { createRoutePath, errorRoutePath, seeRoutePath } from '@/routes/mfa.constants'; +import { + BETA_MANAGER_MFA_DISABLE, + createRoutePath, + errorRoutePath, + seeRoutePath, +} from '@/routes/mfa.constants'; import { accountDisable2faRoute } from '@/routes/routes'; import { Status2fa } from '@/types/status.type'; @@ -26,6 +33,19 @@ export default function DisableMFA() { const navigate = useNavigate(); const location = useLocation(); + const { data: availability, isLoading: isFeatureLoading } = useFeatureAvailability([ + BETA_MANAGER_MFA_DISABLE, + ]); + const isBetaManagerMfaDisableAvailable = + availability?.[BETA_MANAGER_MFA_DISABLE] ?? false; + + useEffect(() => { + if (isBetaManagerMfaDisableAvailable) { + const betaUrl = `/beta/#/procedures${location.pathname}${location.search}`; + window.location.assign(betaUrl); + } + }, [isBetaManagerMfaDisableAvailable, location.pathname, location.search]); + const navigateTo = (url: string): void => { if (location.pathname !== url) { // To avoid redirecting user to the login page after navigating to another view, @@ -51,6 +71,14 @@ export default function DisableMFA() { } }, [isFetched]); + if (isFeatureLoading || isBetaManagerMfaDisableAvailable) { + return ( + + + + ); + } + return ( <> {isLoading ? : } diff --git a/packages/manager/apps/procedures/src/routes/mfa.constants.ts b/packages/manager/apps/procedures/src/routes/mfa.constants.ts index ccb06f23b36e..eeff74f2b663 100644 --- a/packages/manager/apps/procedures/src/routes/mfa.constants.ts +++ b/packages/manager/apps/procedures/src/routes/mfa.constants.ts @@ -1,3 +1,4 @@ export const createRoutePath = 'create'; export const seeRoutePath = 'see'; export const errorRoutePath = 'error'; +export const BETA_MANAGER_MFA_DISABLE = 'procedures:beta-mfa-disable';