import React from "react";
import { Box, Typography } from "@mui/material";
import SentimentVeryDissatisfiedIcon from "@mui/icons-material/SentimentVeryDissatisfied";

/**
 * Generic error display component with centered icon and text
 * @param {Object} props
 * @param {string} props.error - The error message to display
 * @param {string} [props.title="Error"] - Optional custom title
 * @param {Object} [props.sx={}] - Optional additional styles
 */
const ErrorDisplay = ({ error, title = "Error", sx = {} }) => {
  return (
    <Box
      sx={{
        display: "flex",
        flexDirection: "column",
        alignItems: "center",
        justifyContent: "center",
        p: 4,
        gap: 2,
        ...sx,
      }}
    >
      <SentimentVeryDissatisfiedIcon
        sx={{ fontSize: 60, color: "warning.main" }}
      />
      <Typography variant="h6" color="warning">
        {title}
      </Typography>
      <Typography
        variant="body1"
        align="center"
        color="text.secondary"
        sx={{ maxWidth: "80%", lineHeight: 1.5 }}
      >
        {error}
      </Typography>
    </Box>
  );
};

export default ErrorDisplay;
