mirror of
https://github.com/SigNoz/signoz.git
synced 2025-12-21 01:16:57 +00:00
* chore: Router provider is removed * update: localstorage set get is added * update: AppLayout is updated * fix: adapter type is fixed * fix: Metric and metric application is now fixed * fix: Metrics page application is updated * fix: Tracepage is made fix * fix: app layout is updated * fix: global Time reducer is updated * refactor: getService api is added * update: metrics reducer is added * update: service list is fixed * fix: Metrics page is updated * fix: api for the metrics application are done * fix: metrics reducer is updated * fix: metrics application is updated * fix: content layout shift is removed * fix: Metric application is updated * fix: metrics application is updated * fix: Metrics application is updated * fix: Application tab is updated * chore: graph is updated * chore: Metrics application is updated * fix: chart x-axis is label is now fixed * fix: application tab is updated * fix: Top end points is added and re-redering in stopped * fix: fixed the edge case when user changes the global time then updated data is fetched * fix: Settings page is updated * chore: AppLayout is updated * chore: AppLayout is updated * chore: applayout is updated * chore: changed default loading is true in the global time reducer * chore: Global Time option is fixed * chore: Signup and Applayout is updated * chore: Button text is updated * chore: Button in the metrics application is updated * chore: dashboard menu item position in the side nav is updated * fix: Logo is now redirecting to the Application page * fix: Application page is updated * fix: AppLayout is updated * fix: starting and ending time is fixed * fix: Metrics Application is updated to the previous chart data * update: getDateArrayFromStartAndEnd function is added * update: Empty graph data is added * fix: External Call and DB Call Tabs graph are updated when there is no data a empty data is rendered * fix: onboarding modal condition is fixed and new calling api every 50000 ms to fetch the data * fix: onBoarding condition modal is updated * fix: onBoarding condition modal is updated * fix: onBoarding condition modal is updated * fix: Application chart re rendering issue is fixed * fix: Application page is changed when we change the global time * chore: step size is increased from 30 to 60 * chore: build is now fixed * chore: metrics application page is updated * fix: empty graph is now fixed * fix: application metrics graph is now fixed * fix: Time selection for custom is fixed * fix: usage graph is fixed * fix: global time selector is fixed and empty graph on click handler is added * fix: metrics application is now fixed
91 lines
2.1 KiB
TypeScript
91 lines
2.1 KiB
TypeScript
import Graph, { graphOnClickHandler } from 'components/Graph';
|
|
import { timePreferance } from 'container/NewWidget/RightContainer/timeItems';
|
|
import GetMaxMinTime from 'lib/getMaxMinTime';
|
|
import { colors } from 'lib/getRandomColor';
|
|
import getStartAndEndTime from 'lib/getStartAndEndTime';
|
|
import getTimeString from 'lib/getTimeString';
|
|
import React, { useCallback } from 'react';
|
|
import { useSelector } from 'react-redux';
|
|
import { AppState } from 'store/reducers';
|
|
import { Widgets } from 'types/api/dashboard/getAll';
|
|
import { GlobalReducer } from 'types/reducer/globalTime';
|
|
|
|
const EmptyGraph = ({
|
|
selectedTime,
|
|
widget,
|
|
onClickHandler,
|
|
}: EmptyGraphProps): JSX.Element => {
|
|
const { minTime, maxTime, loading } = useSelector<AppState, GlobalReducer>(
|
|
(state) => state.globalTime,
|
|
);
|
|
|
|
const maxMinTime = GetMaxMinTime({
|
|
graphType: widget.panelTypes,
|
|
maxTime,
|
|
minTime,
|
|
});
|
|
|
|
const { end, start } = getStartAndEndTime({
|
|
type: selectedTime.enum,
|
|
maxTime: maxMinTime.maxTime,
|
|
minTime: maxMinTime.minTime,
|
|
});
|
|
|
|
const dateFunction = useCallback(() => {
|
|
if (!loading) {
|
|
const dates: Date[] = [];
|
|
|
|
const startString = getTimeString(start);
|
|
const endString = getTimeString(end);
|
|
|
|
const parsedStart = parseInt(startString, 10);
|
|
const parsedEnd = parseInt(endString, 10);
|
|
|
|
let startDate = parsedStart;
|
|
const endDate = parsedEnd;
|
|
|
|
while (endDate >= startDate) {
|
|
const newDate = new Date(startDate);
|
|
|
|
startDate = startDate + 20000;
|
|
|
|
dates.push(newDate);
|
|
}
|
|
return dates;
|
|
}
|
|
return [];
|
|
}, [start, end, loading]);
|
|
|
|
const date = dateFunction();
|
|
|
|
return (
|
|
<Graph
|
|
{...{
|
|
type: 'line',
|
|
onClickHandler: onClickHandler,
|
|
data: {
|
|
datasets: [
|
|
{
|
|
data: new Array(date?.length).fill(0),
|
|
borderColor: colors[0],
|
|
showLine: true,
|
|
borderWidth: 1.5,
|
|
spanGaps: true,
|
|
pointRadius: 0,
|
|
},
|
|
],
|
|
labels: date,
|
|
},
|
|
}}
|
|
/>
|
|
);
|
|
};
|
|
|
|
interface EmptyGraphProps {
|
|
selectedTime: timePreferance;
|
|
widget: Widgets;
|
|
onClickHandler: graphOnClickHandler | undefined;
|
|
}
|
|
|
|
export default EmptyGraph;
|