All files / src/components/BusySpinner index.tsx

0% Statements 0/2
0% Branches 0/4
0% Functions 0/1
0% Lines 0/2

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                                                                                                 
import React from 'react';
import { Box, CircularProgress, useTheme } from '@mui/material';
import hexRgb from 'hex-rgb';
 
export type BusySpinnerProps = {
  withSkrim?: boolean;
  noBackground?: boolean;
};
 
export default function BusySpinner({ withSkrim, noBackground }: BusySpinnerProps): JSX.Element {
  const theme = useTheme();
 
  return (
    <Box
      sx={{
        position: 'fixed',
        left: 0,
        right: 0,
        top: 0,
        bottom: 0,
        backgroundColor: withSkrim
          ? `${hexRgb(`${theme.palette.TwClrBaseGray025}`, { alpha: 0.6, format: 'css' })}`
          : 'none',
        zIndex: 2000,
        backgroundImage: noBackground
          ? 'none'
          : 'linear-gradient(180deg,' +
            `${hexRgb(`${theme.palette.TwClrBaseGreen050}`, { alpha: 0, format: 'css' })} 0%,` +
            `${hexRgb(`${theme.palette.TwClrBaseGreen050}`, { alpha: 0.24, format: 'css' })} 100%)`,
      }}
    >
      <Box
        display='flex'
        justifyContent='center'
        alignItems='center'
        padding={theme.spacing(5)}
        flexDirection='column'
        height='100%'
      >
        <CircularProgress
          sx={{
            color: theme.palette.TwClrIcnBrand,
          }}
        />
      </Box>
    </Box>
  );
}