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 | 24x 24x 76x 76x 76x | import React from "react";
import { LockIcon } from "@assets/rebrandIcons";
import { Stack, StackProps } from "@mui/material";
import { Text } from "./Text";
import { palette } from "@palette";
import LoadingSpinner from "@components/Snipper/LoadingSpinner";
interface Props {
children: React.ReactElement | React.ReactElement[];
isLoading?: boolean;
message: string;
notAuthorized: boolean;
wrapperProps?: StackProps;
}
type TAccessDeniedSection =
| "bank accounts"
| "merchant info"
| "underwriting"
| "business owners"
| "risk"
| "agreement"
| "documents";
export const getAccessDeniedMessage = (section: TAccessDeniedSection) => {
const DEFAULT_MESSAGE = "Access denied to ";
switch (section) {
case "merchant info":
return DEFAULT_MESSAGE + "merchant informations";
case "risk":
return DEFAULT_MESSAGE + "risk summary informations";
case "agreement":
return DEFAULT_MESSAGE + "merchant agreement";
default:
return DEFAULT_MESSAGE + section;
}
};
export const WithMissingPermissionModule = ({
children,
isLoading,
message,
notAuthorized,
wrapperProps,
}: Props) => {
// If the consumer is not handling the loading
Iif (isLoading) {
return (
<LoadingSpinner
sx={{
height: "200px",
}}
/>
);
}
Iif (notAuthorized) {
return (
<Stack alignItems="center" marginTop="25%" gap="8px" {...wrapperProps}>
<LockIcon width={33} height={33} />
<Text
textAlign="center"
color={palette.neutral[80]}
fontSize="18px"
fontWeight="regular"
>
{message}
</Text>
</Stack>
);
}
return <>{children}</>;
};
|