diff --git a/src/Components/Charts/ChartBox/EmptyView.jsx b/src/Components/Charts/ChartBox/EmptyView.jsx
new file mode 100644
index 000000000..4c5181b49
--- /dev/null
+++ b/src/Components/Charts/ChartBox/EmptyView.jsx
@@ -0,0 +1,82 @@
+// Components
+import { Typography, Stack } from "@mui/material";
+import PropTypes from "prop-types";
+import { useTheme } from "@emotion/react";
+import IconBox from "../../IconBox";
+
+const EmptyView = ({
+ icon,
+ header,
+ message = "No Data",
+ size = "h2",
+ borderRadiusRight = 4,
+ justifyContent = "flex-start",
+ height = "300px"
+}) => {
+ const theme = useTheme();
+ return (
+
+
+
+ {icon && {icon}}
+ {header && {header}}
+
+
+
+ {message}
+
+
+
+
+ );
+};
+
+EmptyView.propTypes = {
+ message: PropTypes.string,
+ icon: PropTypes.node,
+ header: PropTypes.string,
+ size: PropTypes.oneOf(['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'body1', 'body2'])
+};
+
+export default EmptyView;
\ No newline at end of file
diff --git a/src/Components/Charts/ChartBox/index.jsx b/src/Components/Charts/ChartBox/index.jsx
index bd27d4775..4b72fe16a 100644
--- a/src/Components/Charts/ChartBox/index.jsx
+++ b/src/Components/Charts/ChartBox/index.jsx
@@ -1,6 +1,7 @@
import { Stack, Typography } from "@mui/material";
import { useTheme } from "@emotion/react";
import IconBox from "../../IconBox";
+import EmptyView from "./EmptyView";
import PropTypes from "prop-types";
const ChartBox = ({
@@ -12,8 +13,13 @@ const ChartBox = ({
Legend,
borderRadiusRight = 4,
sx,
+ noDataMessage,
+ isEmpty = false,
}) => {
const theme = useTheme();
+ if (isEmpty) {
+ return ;
+ }
return (
}
header="Uptime"
+ isEmpty={monitor?.uptimePercentage === 0 && !monitor?.upChecks?.length}
>
}
header="Incidents"
+ noDataMessage="Great. No Incidents, yet!"
+ isEmpty={!monitor?.groupedDownChecks?.length}
>