mirror of
https://github.com/OneUptime/oneuptime.git
synced 2026-04-06 00:32:12 +02:00
feat: add NoDataMessage component and integrate it into AreaChart, BarChart, and LineChart for improved no data handling
This commit is contained in:
@@ -7,6 +7,7 @@ import ChartCurve from "../Types/ChartCurve";
|
||||
import ChartDataPoint from "../ChartLibrary/Types/ChartDataPoint";
|
||||
import DataPointUtil from "../Utils/DataPoint";
|
||||
import ChartReferenceLineProps from "../Types/ReferenceLineProps";
|
||||
import NoDataMessage from "../ChartGroup/NoDataMessage";
|
||||
|
||||
export interface ComponentProps {
|
||||
data: Array<SeriesPoint>;
|
||||
@@ -83,11 +84,7 @@ const AreaChartElement: FunctionComponent<AreaInternalProps> = (
|
||||
onValueChange={() => {}}
|
||||
referenceLines={props.referenceLines}
|
||||
/>
|
||||
{hasNoData && (
|
||||
<div className="absolute inset-0 flex items-center justify-center">
|
||||
<p className="text-sm text-gray-400">No data available</p>
|
||||
</div>
|
||||
)}
|
||||
{hasNoData && <NoDataMessage />}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -6,6 +6,7 @@ import YAxis from "../Types/YAxis/YAxis";
|
||||
import ChartDataPoint from "../ChartLibrary/Types/ChartDataPoint";
|
||||
import DataPointUtil from "../Utils/DataPoint";
|
||||
import ChartReferenceLineProps from "../Types/ReferenceLineProps";
|
||||
import NoDataMessage from "../ChartGroup/NoDataMessage";
|
||||
|
||||
export interface ComponentProps {
|
||||
data: Array<SeriesPoint>;
|
||||
@@ -78,11 +79,7 @@ const BarChartElement: FunctionComponent<BarInternalProps> = (
|
||||
onValueChange={() => {}}
|
||||
referenceLines={props.referenceLines}
|
||||
/>
|
||||
{hasNoData && (
|
||||
<div className="absolute inset-0 flex items-center justify-center">
|
||||
<p className="text-sm text-gray-400">No data available</p>
|
||||
</div>
|
||||
)}
|
||||
{hasNoData && <NoDataMessage />}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
13
Common/UI/Components/Charts/ChartGroup/NoDataMessage.tsx
Normal file
13
Common/UI/Components/Charts/ChartGroup/NoDataMessage.tsx
Normal file
@@ -0,0 +1,13 @@
|
||||
import React, { FunctionComponent, ReactElement } from "react";
|
||||
|
||||
const NoDataMessage: FunctionComponent = (): ReactElement => {
|
||||
return (
|
||||
<div className="absolute inset-0 flex items-center justify-center pointer-events-none">
|
||||
<span className="text-sm text-gray-400 bg-white/90 border border-gray-100 rounded-full px-4 py-1.5 shadow-sm">
|
||||
No data available
|
||||
</span>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default NoDataMessage;
|
||||
@@ -7,6 +7,7 @@ import ChartCurve from "../Types/ChartCurve";
|
||||
import ChartDataPoint from "../ChartLibrary/Types/ChartDataPoint";
|
||||
import DataPointUtil from "../Utils/DataPoint";
|
||||
import ChartReferenceLineProps from "../Types/ReferenceLineProps";
|
||||
import NoDataMessage from "../ChartGroup/NoDataMessage";
|
||||
|
||||
export interface ComponentProps {
|
||||
data: Array<SeriesPoint>;
|
||||
@@ -82,11 +83,7 @@ const LineChartElement: FunctionComponent<LineInternalProps> = (
|
||||
onValueChange={() => {}}
|
||||
referenceLines={props.referenceLines}
|
||||
/>
|
||||
{hasNoData && (
|
||||
<div className="absolute inset-0 flex items-center justify-center">
|
||||
<p className="text-sm text-gray-400">No data available</p>
|
||||
</div>
|
||||
)}
|
||||
{hasNoData && <NoDataMessage />}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user