mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-06 15:59:52 +03:00
39 lines
1007 B
TypeScript
39 lines
1007 B
TypeScript
import { FC } from 'react';
|
|
|
|
import { Box, Button, CircularProgress, Typography } from '@mui/material';
|
|
import RefreshIcon from '@mui/icons-material/Refresh';
|
|
|
|
import { MessageBox } from '..';
|
|
|
|
interface FormLoaderProps {
|
|
message?: string;
|
|
errorMessage?: string;
|
|
onRetry?: () => void;
|
|
}
|
|
|
|
const FormLoader: FC<FormLoaderProps> = ({ errorMessage, onRetry, message = 'Loading…' }) => {
|
|
if (errorMessage) {
|
|
return (
|
|
<MessageBox my={2} level="error" message={errorMessage}>
|
|
{onRetry && (
|
|
<Button startIcon={<RefreshIcon />} variant="contained" color="error" onClick={onRetry}>
|
|
Retry
|
|
</Button>
|
|
)}
|
|
</MessageBox>
|
|
);
|
|
}
|
|
return (
|
|
<Box m={2} py={2} display="flex" alignItems="center" flexDirection="column">
|
|
<Box py={2}>
|
|
<CircularProgress size={100} />
|
|
</Box>
|
|
<Typography variant="h6" fontWeight={400} textAlign="center">
|
|
{message}
|
|
</Typography>
|
|
</Box>
|
|
);
|
|
};
|
|
|
|
export default FormLoader;
|