From fc39b3b0ddb977afbf66f99f61c00f19f3c8cadb Mon Sep 17 00:00:00 2001 From: Daniel Hougaard Date: Tue, 24 Sep 2024 17:24:38 +0400 Subject: [PATCH] fix(dashboard): fix imports missing secrets counter --- .../src/hooks/api/secretImports/queries.tsx | 23 ++++++++++++++++++- .../SecretOverviewPage/SecretOverviewPage.tsx | 15 +++++++----- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/frontend/src/hooks/api/secretImports/queries.tsx b/frontend/src/hooks/api/secretImports/queries.tsx index a3136e2a8..c2ddd2fbe 100644 --- a/frontend/src/hooks/api/secretImports/queries.tsx +++ b/frontend/src/hooks/api/secretImports/queries.tsx @@ -189,6 +189,22 @@ export const useGetImportedSecretsAllEnvs = ({ })) }); + const getEnvImportedSecretKeyCount = useCallback( + (env: string) => { + const selectedEnvIndex = environments.indexOf(env); + let totalSecrets = 0; + + if (selectedEnvIndex !== -1) { + secretImports?.[selectedEnvIndex]?.data?.forEach((secret) => { + totalSecrets += secret.secrets.length; + }); + } + + return totalSecrets; + }, + [(secretImports || []).map((response) => response.data)] + ); + const isImportedSecretPresentInEnv = useCallback( (envSlug: string, secretName: string) => { const selectedEnvIndex = environments.indexOf(envSlug); @@ -226,7 +242,12 @@ export const useGetImportedSecretsAllEnvs = ({ [(secretImports || []).map((response) => response.data)] ); - return { secretImports, isImportedSecretPresentInEnv, getImportedSecretByKey }; + return { + secretImports, + isImportedSecretPresentInEnv, + getImportedSecretByKey, + getEnvImportedSecretKeyCount + }; }; export const useGetImportedFoldersByEnv = ({ diff --git a/frontend/src/views/SecretOverviewPage/SecretOverviewPage.tsx b/frontend/src/views/SecretOverviewPage/SecretOverviewPage.tsx index 46e5f4ba7..154937869 100644 --- a/frontend/src/views/SecretOverviewPage/SecretOverviewPage.tsx +++ b/frontend/src/views/SecretOverviewPage/SecretOverviewPage.tsx @@ -207,11 +207,12 @@ export const SecretOverviewPage = () => { setVisibleEnvs(readableEnvs); }, [userAvailableEnvs, secretPath]); - const { isImportedSecretPresentInEnv, getImportedSecretByKey } = useGetImportedSecretsAllEnvs({ - projectId: workspaceId, - path: secretPath, - environments: userAvailableEnvs.map(({ slug }) => slug) - }); + const { isImportedSecretPresentInEnv, getImportedSecretByKey, getEnvImportedSecretKeyCount } = + useGetImportedSecretsAllEnvs({ + projectId: workspaceId, + path: secretPath, + environments: userAvailableEnvs.map(({ slug }) => slug) + }); const paginationOffset = (page - 1) * perPage; @@ -784,7 +785,9 @@ export const SecretOverviewPage = () => { {visibleEnvs?.map(({ name, slug }, index) => { const envSecKeyCount = getEnvSecretKeyCount(slug); - const missingKeyCount = secKeys.length - envSecKeyCount; + const importedSecKeyCount = getEnvImportedSecretKeyCount(slug); + const missingKeyCount = secKeys.length - envSecKeyCount - importedSecKeyCount; + return (