refactor: move overview resource env determination logic to the client side to preserve ordering of resources

This commit is contained in:
Scott Wilson
2024-09-19 16:36:11 -07:00
parent d0656358a2
commit bc74c44f97
13 changed files with 80 additions and 137 deletions
+1 -14
View File
@@ -15,7 +15,6 @@ import {
} from "@app/hooks/api/dashboard/types";
import { OrderByDirection } from "@app/hooks/api/generic/types";
import { mergePersonalSecrets } from "@app/hooks/api/secrets/queries";
import { SecretV3RawSanitized } from "@app/hooks/api/secrets/types";
export const dashboardKeys = {
all: () => ["dashboard"] as const,
@@ -170,21 +169,9 @@ export const useGetProjectSecretsOverview = (
select: useCallback((data: Awaited<ReturnType<typeof fetchProjectSecretsOverview>>) => {
const { secrets, ...select } = data;
let sanitizedSecrets: Record<string, Record<string, SecretV3RawSanitized>> = {};
if (secrets) {
sanitizedSecrets = {};
Object.entries(secrets).forEach(([env, rawSecrets]) => {
sanitizedSecrets[env] = mergePersonalSecrets(rawSecrets).reduce<
Record<string, SecretV3RawSanitized>
>((prev, curr) => ({ ...prev, [curr.key]: curr }), {});
});
}
return {
...select,
...(secrets && {
secrets: sanitizedSecrets
})
secrets: secrets ? mergePersonalSecrets(secrets) : undefined
};
}, []),
keepPreviousData: true
+4 -4
View File
@@ -5,9 +5,9 @@ import { TSecretImport } from "@app/hooks/api/secretImports/types";
import { SecretV3Raw, SecretV3RawSanitized } from "@app/hooks/api/secrets/types";
export type DashboardProjectSecretsOverviewResponse = {
folders?: { [key: string]: TSecretFolder[] };
dynamicSecrets?: { [key: string]: TDynamicSecret[] };
secrets?: { [key: string]: SecretV3Raw[] };
folders?: (TSecretFolder & { environment: string })[];
dynamicSecrets?: (TDynamicSecret & { environment: string })[];
secrets?: SecretV3Raw[];
totalSecretCount?: number;
totalFolderCount?: number;
totalDynamicSecretCount?: number;
@@ -30,7 +30,7 @@ export type DashboardProjectSecretsOverview = Omit<
DashboardProjectSecretsOverviewResponse,
"secrets"
> & {
secrets?: Record<string, Record<string, SecretV3RawSanitized>>;
secrets?: SecretV3RawSanitized[];
};
export type DashboardProjectSecretsDetails = Omit<