Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | 1x 7x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 1x 1x 1x 1x 1x 1x 6x 6x | // mui
import Box from "@mui/material/Box";
// components
import Layout from "./Layout";
import PrivateRoutes from "routes/PrivateRoutes";
// data
import { Suspense, memo, useEffect, useState } from "react";
import LoadingSpinner from "@components/Snipper/LoadingSpinner";
import BreadcrumbsPageContainer from "@components/CustomBreadcrumbsPage/BreadcrumbsPage";
import InternetStatusWrapper from "@components/Wrapper/InternetStatusWrapper";
import { FileUploadSnackbarContainer } from "@components/UploadFile/FileUploadSnackbarContainer";
import { useGetEnterpriseConfiguration } from "@components/Layout/hooks/useGetEnterpriseConfiguration";
import { checkPortals } from "@utils/routing";
import { useRedirectTransaction } from "./hooks/useRedirectTransaction";
import useManageQueryRedirect from "@hooks/useManageQueryRedirect";
import { useRedirectToMerchantPanel } from "./hooks/useRedirectToMerchantPanel";
import SideMenuDrawer from "componentsV2/SideMenu/SideMenuDrawer";
import { useRedirectLinkBPRequestReview } from "features/Merchants/MerchantSidePanel/GiveMerchantFile/hooks/useRedirectLinkBPRequestReview";
import GiveOnboarding from "@features/GiveOnboarding";
import { useGetFeatureFlagValues } from "FeatureFlags/useGetFeatureFlagValues";
import OnboardingStatusWrapper from "@components/Wrapper/OnboardingStatusWrapper";
import { DrawerProvider } from "componentsV2/SideMenu/DrawerContext";
import { MobileTableHeaderProvider } from "componentsV2/Table/MobileTableHeaderContext";
import useCheckPAH from "@hooks/common/useCheckPAH";
import useMasqueradeReducer from "@hooks/Reducers/useMasqueradeReducer";
const Base = () => {
const { isNoSidebar, isDashBoard, isMerchantPortal } = checkPortals();
const { isMerchantOnboardingModalEnabled } = useGetFeatureFlagValues();
const { isLoggedInPAH } = useCheckPAH();
const { isMasqueradeMode } = useMasqueradeReducer();
const [winHeight, setWinHeight] = useState(window.innerHeight);
// The wizard is rendered outside OnboardingStatusWrapper so it survives the
// identity-only re-onboarding case where the wrapper returns null. But the
// wrapper is also what kept non-PAH members out of the wizard, so re-apply
// the same user gate here: only the logged-in PAH (or an acquirer
// masquerading as the merchant) may access onboarding. Non-PAH members still
// get the wrapper's "Onboarding in progress" view underneath.
const canRenderOnboarding =
isMerchantPortal &&
isMerchantOnboardingModalEnabled &&
(isMasqueradeMode || isLoggedInPAH);
useGetEnterpriseConfiguration();
useRedirectTransaction();
useManageQueryRedirect();
useRedirectToMerchantPanel();
useRedirectLinkBPRequestReview();
useEffect(() => {
const updateHeight = () => {
setWinHeight(window.innerHeight);
};
window.addEventListener("resize", updateHeight);
window.addEventListener("orientationchange", updateHeight);
return () => {
window.removeEventListener("resize", updateHeight);
window.removeEventListener("orientationchange", updateHeight);
};
}, []);
Iif (isNoSidebar) {
return (
<>
{canRenderOnboarding && <GiveOnboarding />}
<OnboardingStatusWrapper minHeight={winHeight}>
<Box component="main" height="100%">
<Suspense fallback={<LoadingSpinner />}>
{PrivateRoutes()}
<FileUploadSnackbarContainer />
</Suspense>
</Box>
</OnboardingStatusWrapper>
</>
);
}
return (
<>
{canRenderOnboarding && <GiveOnboarding />}
<OnboardingStatusWrapper minHeight={winHeight}>
<Layout
bgcolor={isDashBoard ? "#FFFFFF" : undefined}
winHeight={winHeight}
>
<DrawerProvider>
<MobileTableHeaderProvider>
<SideMenuDrawer />
<BreadcrumbsPageContainer>
<InternetStatusWrapper>
<Suspense fallback={<LoadingSpinner />}>
{PrivateRoutes()}
<FileUploadSnackbarContainer />
</Suspense>
</InternetStatusWrapper>
</BreadcrumbsPageContainer>
</MobileTableHeaderProvider>
</DrawerProvider>
</Layout>
</OnboardingStatusWrapper>
</>
);
};
export default memo(Base);
|