All files / src/utils/components/feature-access GlobalMaintenanceBanner.jsx

6.66% Statements 1/15
0% Branches 0/12
0% Functions 0/4
8.33% Lines 1/12

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        3x                                                  
import { Alert, Box } from "@mui/material";
import { useEffect, useState } from "react";
import useFeatureFlag from "@/utils/hooks/useFeatureFlag";
 
const GlobalMaintenanceBanner = ({ userType }) => {
    const { maintenanceMode } = useFeatureFlag(userType);
    const [eventMessage, setEventMessage] = useState("");
 
    useEffect(() => {
        const handleMaintenanceDialog = (event) => {
            const detail = event?.detail || {};
            if (!detail.isMaintenance) return;
            setEventMessage(detail.message || "The platform is temporarily under maintenance.");
        };
 
        window.addEventListener("showMaintenanceDialog", handleMaintenanceDialog);
        return () => window.removeEventListener("showMaintenanceDialog", handleMaintenanceDialog);
    }, []);
 
    if (!maintenanceMode && !eventMessage) return null;
 
    return (
        <Box sx={{ px: 2, pt: 2 }}>
            <Alert severity="warning">{eventMessage || "The platform is temporarily under maintenance."}</Alert>
        </Box>
    );
};
 
export default GlobalMaintenanceBanner;