signoz/frontend/src/hooks/queryBuilder/useGetQueryRange.ts

30 lines
1023 B
TypeScript
Raw Normal View History

import { REACT_QUERY_KEY } from 'constants/reactQueryKeys';
import {
GetMetricQueryRange,
GetQueryResultsProps,
} from 'lib/dashboard/getQueryResults';
import { useMemo } from 'react';
import { useQuery, UseQueryOptions, UseQueryResult } from 'react-query';
import { SuccessResponse } from 'types/api';
import { MetricRangePayloadProps } from 'types/api/metrics/getQueryRange';
type UseGetQueryRange = (
requestData: GetQueryResultsProps,
options?: UseQueryOptions<SuccessResponse<MetricRangePayloadProps>, Error>,
) => UseQueryResult<SuccessResponse<MetricRangePayloadProps>, Error>;
2023-06-13 16:26:12 +05:30
export const useGetQueryRange: UseGetQueryRange = (requestData, options) => {
2023-06-13 16:26:12 +05:30
const queryKey = useMemo(() => {
if (options?.queryKey) {
return [...options.queryKey];
2023-06-13 16:26:12 +05:30
}
return [REACT_QUERY_KEY.GET_QUERY_RANGE, requestData];
}, [options?.queryKey, requestData]);
2023-06-13 16:26:12 +05:30
return useQuery<SuccessResponse<MetricRangePayloadProps>, Error>({
queryFn: async () => GetMetricQueryRange(requestData),
...options,
2023-06-13 16:26:12 +05:30
queryKey,
});
2023-06-13 16:26:12 +05:30
};