mirror of
https://github.com/SigNoz/signoz.git
synced 2025-12-25 11:30:08 +00:00
* feat: update time range selection flows to handle relative and absolute times * fix: lint error * fix: lint error * feat: update logic to handle custom relative times on load and standardize relative time formats * fix: type issue * fix: handle light mode and on custom time range select * chore: update alert frequency corresponding times * chore: update copy URL * feat: update styles
65 lines
1.5 KiB
TypeScript
65 lines
1.5 KiB
TypeScript
import { SelectProps } from 'antd';
|
|
import { Time } from 'container/TopNav/DateTimeSelection/config';
|
|
import getStartEndRangeTime from 'lib/getStartEndRangeTime';
|
|
import getStep from 'lib/getStep';
|
|
import {
|
|
IBuilderFormula,
|
|
IBuilderQuery,
|
|
IClickHouseQuery,
|
|
IPromQLQuery,
|
|
} from 'types/api/queryBuilder/queryBuilderData';
|
|
|
|
// toChartInterval converts eval window to chart selection time interval
|
|
export const toChartInterval = (evalWindow: string | undefined): Time => {
|
|
switch (evalWindow) {
|
|
case '1m0s':
|
|
return '1m';
|
|
case '5m0s':
|
|
return '5m';
|
|
case '10m0s':
|
|
return '10m';
|
|
case '15m0s':
|
|
return '15m';
|
|
case '30m0s':
|
|
return '30m';
|
|
case '1h0m0s':
|
|
return '1h';
|
|
case '3h0m0s':
|
|
return '3h';
|
|
case '4h0m0s':
|
|
return '4h';
|
|
case '6h0m0s':
|
|
return '6h';
|
|
case '12h0m0s':
|
|
return '12h';
|
|
case '24h0m0s':
|
|
return '1d';
|
|
default:
|
|
return '5m';
|
|
}
|
|
};
|
|
|
|
export const getUpdatedStepInterval = (evalWindow?: string): number => {
|
|
const { start, end } = getStartEndRangeTime({
|
|
type: 'GLOBAL_TIME',
|
|
interval: toChartInterval(evalWindow),
|
|
});
|
|
return getStep({
|
|
start,
|
|
end,
|
|
inputFormat: 'ns',
|
|
});
|
|
};
|
|
|
|
export const getSelectedQueryOptions = (
|
|
queries: Array<
|
|
IBuilderQuery | IBuilderFormula | IClickHouseQuery | IPromQLQuery
|
|
>,
|
|
): SelectProps['options'] =>
|
|
queries
|
|
.filter((query) => !query.disabled)
|
|
.map((query) => ({
|
|
label: 'queryName' in query ? query.queryName : query.name,
|
|
value: 'queryName' in query ? query.queryName : query.name,
|
|
}));
|