From 4f3f5e57b6d579ad7bfa2eb596bdad878ac53f36 Mon Sep 17 00:00:00 2001 From: Ali <83188384+testA113@users.noreply.github.com> Date: Fri, 16 Feb 2024 14:02:05 +1300 Subject: [PATCH] fix(app): avoid duplicate env requests [EE-6727] (#11194) Co-authored-by: testa113 --- .../ApplicationContainersDatatable.tsx | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/ApplicationContainersDatatable.tsx b/app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/ApplicationContainersDatatable.tsx index 4a690ff0c..8e8fc67ae 100644 --- a/app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/ApplicationContainersDatatable.tsx +++ b/app/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable/ApplicationContainersDatatable.tsx @@ -5,6 +5,7 @@ import { ContainerStatus, Pod } from 'kubernetes-types/core/v1'; import { IndexOptional } from '@/react/kubernetes/configs/types'; import { createStore } from '@/react/kubernetes/datatables/default-kube-datatable-store'; +import { useEnvironmentId } from '@/react/hooks/useEnvironmentId'; import { useEnvironment } from '@/react/portainer/environments/queries'; import { Datatable } from '@@/datatables'; @@ -19,42 +20,41 @@ const storageKey = 'k8sContainersDatatable'; const settingsStore = createStore(storageKey); export function ApplicationContainersDatatable() { + const environmentId = useEnvironmentId(); + const useServerMetricsQuery = useEnvironment( + environmentId, + (env) => !!env?.Kubernetes?.Configuration.UseServerMetrics + ); const tableState = useTableState(settingsStore, storageKey); const { - params: { - endpointId: environmentId, - name, - namespace, - 'resource-type': resourceType, - }, + params: { name, namespace, 'resource-type': resourceType }, } = useCurrentStateAndParams(); // get the containers from the aapplication pods - const { data: application, ...applicationQuery } = useApplication( + const applicationQuery = useApplication( environmentId, namespace, name, resourceType ); - const { data: pods, ...podsQuery } = useApplicationPods( + const podsQuery = useApplicationPods( environmentId, namespace, name, - application - ); - const appContainers = useContainersRowData(pods); - - const { data: isServerMetricsEnabled } = useEnvironment( - environmentId, - (environment) => !!environment?.Kubernetes?.Configuration.UseServerMetrics + applicationQuery.data ); + const appContainers = useContainersRowData(podsQuery.data); return ( > dataset={appContainers} - columns={getColumns(!!isServerMetricsEnabled)} + columns={getColumns(!!useServerMetricsQuery.data)} settingsManager={tableState} - isLoading={applicationQuery.isLoading || podsQuery.isLoading} + isLoading={ + applicationQuery.isLoading || + podsQuery.isLoading || + useServerMetricsQuery.isLoading + } emptyContentLabel="No containers found" title="Application containers" titleIcon={Server}