signoz/frontend/src/hooks/infraMonitoring/useGetK8sNamespacesList.ts
aniketio-ctrl 68effaf232
chore: support for non-normalized metrics behind a feature flag (#7919)
feat(7294-services): added dot metrics boolean for services tab
2025-05-30 10:27:29 +00:00

52 lines
1.4 KiB
TypeScript

import {
getK8sNamespacesList,
K8sNamespacesListPayload,
K8sNamespacesListResponse,
} from 'api/infraMonitoring/getK8sNamespacesList';
import { REACT_QUERY_KEY } from 'constants/reactQueryKeys';
import { useMemo } from 'react';
import { useQuery, UseQueryOptions, UseQueryResult } from 'react-query';
import { ErrorResponse, SuccessResponse } from 'types/api';
type UseGetK8sNamespacesList = (
requestData: K8sNamespacesListPayload,
options?: UseQueryOptions<
SuccessResponse<K8sNamespacesListResponse> | ErrorResponse,
Error
>,
headers?: Record<string, string>,
dotMetricsEnabled?: boolean,
) => UseQueryResult<
SuccessResponse<K8sNamespacesListResponse> | ErrorResponse,
Error
>;
export const useGetK8sNamespacesList: UseGetK8sNamespacesList = (
requestData,
options,
headers,
dotMetricsEnabled,
) => {
const queryKey = useMemo(() => {
if (options?.queryKey && Array.isArray(options.queryKey)) {
return [...options.queryKey];
}
if (options?.queryKey && typeof options.queryKey === 'string') {
return options.queryKey;
}
return [REACT_QUERY_KEY.GET_NAMESPACE_LIST, requestData];
}, [options?.queryKey, requestData]);
return useQuery<
SuccessResponse<K8sNamespacesListResponse> | ErrorResponse,
Error
>({
queryFn: ({ signal }) =>
getK8sNamespacesList(requestData, signal, headers, dotMetricsEnabled),
...options,
queryKey,
});
};