mirror of
https://github.com/SigNoz/signoz.git
synced 2025-12-29 16:14:42 +00:00
78 lines
2.2 KiB
TypeScript
78 lines
2.2 KiB
TypeScript
import { ActionTypes } from './types';
|
|
import { Moment } from 'moment'
|
|
|
|
|
|
export type DateTimeRangeType = [Moment|null,Moment|null]|null;
|
|
|
|
|
|
export interface GlobalTime {
|
|
maxTime: number;
|
|
minTime: number;
|
|
}
|
|
|
|
export interface updateTimeIntervalAction {
|
|
type: ActionTypes.updateTimeInterval;
|
|
payload: GlobalTime;
|
|
}
|
|
|
|
export const updateTimeInterval = (interval:string, datetimeRange?:[number,number]) => {
|
|
|
|
let maxTime: number = 0;
|
|
let minTime: number = 0;
|
|
console.log('interval', interval, typeof(interval))
|
|
// if interval string is custom, then datetimRange should be present and max & min time should be
|
|
// set directly based on that. Assuming datetimeRange values are in ms, and minTime is 0th element
|
|
|
|
switch (interval) {
|
|
case '15min':
|
|
|
|
maxTime=Date.now()*1000000; // in nano sec
|
|
minTime=(Date.now()-15*60*1000)*1000000;
|
|
console.log('max time 15 in case',maxTime)
|
|
break;
|
|
|
|
case '30min':
|
|
maxTime=Date.now()*1000000; // in nano sec
|
|
minTime=(Date.now()-30*60*1000)*1000000;
|
|
console.log('max time in 30 min case',maxTime)
|
|
break;
|
|
|
|
case '1hr':
|
|
maxTime=Date.now()*1000000; // in nano sec
|
|
minTime=(Date.now()-1*60*60*1000)*1000000;
|
|
break;
|
|
|
|
case '6hr':
|
|
maxTime=Date.now()*1000000; // in nano sec
|
|
minTime=(Date.now()-6*60*60*1000)*1000000;
|
|
break;
|
|
|
|
case '1day':
|
|
maxTime=Date.now()*1000000; // in nano sec
|
|
minTime=(Date.now()-24*60*60*1000)*1000000;
|
|
break;
|
|
|
|
case '1week':
|
|
maxTime=Date.now()*1000000; // in nano sec
|
|
minTime=(Date.now()-7*24*60*60*1000)*1000000;
|
|
break;
|
|
|
|
case 'custom':
|
|
if (datetimeRange !== undefined)
|
|
{
|
|
maxTime=datetimeRange[1]*1000000;// in nano sec
|
|
minTime=datetimeRange[0]*1000000;// in nano sec
|
|
}
|
|
break;
|
|
|
|
default:
|
|
console.log('not found matching case')
|
|
|
|
}
|
|
|
|
|
|
return {
|
|
type: ActionTypes.updateTimeInterval,
|
|
payload: {maxTime:maxTime, minTime:minTime},
|
|
};
|
|
}; |