mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-07 04:27:29 +00:00
refactor to useCallback select instead of queryFn
This commit is contained in:
@@ -160,30 +160,32 @@ export const useGetImportedSecretsAllEnvs = ({
|
|||||||
projectId,
|
projectId,
|
||||||
path
|
path
|
||||||
}),
|
}),
|
||||||
queryFn: async () => {
|
queryFn: () => fetchImportedSecrets(projectId, env, path).catch(() => []),
|
||||||
const data = await fetchImportedSecrets(projectId, env, path).catch(() => []);
|
enabled: Boolean(projectId) && Boolean(env),
|
||||||
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
||||||
return data.map((el) => ({
|
select: useCallback(
|
||||||
environment: el.environment,
|
(data: Awaited<ReturnType<typeof fetchImportedSecrets>>) =>
|
||||||
secretPath: el.secretPath,
|
data.map((el) => ({
|
||||||
environmentInfo: el.environmentInfo,
|
environment: el.environment,
|
||||||
folderId: el.folderId,
|
secretPath: el.secretPath,
|
||||||
secrets: el.secrets.map((encSecret) => {
|
environmentInfo: el.environmentInfo,
|
||||||
return {
|
folderId: el.folderId,
|
||||||
id: encSecret.id,
|
secrets: el.secrets.map((encSecret) => {
|
||||||
env: encSecret.environment,
|
return {
|
||||||
key: encSecret.secretKey,
|
id: encSecret.id,
|
||||||
value: encSecret.secretValue,
|
env: encSecret.environment,
|
||||||
tags: encSecret.tags,
|
key: encSecret.secretKey,
|
||||||
comment: encSecret.secretComment,
|
value: encSecret.secretValue,
|
||||||
createdAt: encSecret.createdAt,
|
tags: encSecret.tags,
|
||||||
updatedAt: encSecret.updatedAt,
|
comment: encSecret.secretComment,
|
||||||
version: encSecret.version
|
createdAt: encSecret.createdAt,
|
||||||
};
|
updatedAt: encSecret.updatedAt,
|
||||||
})
|
version: encSecret.version
|
||||||
}));
|
};
|
||||||
},
|
})
|
||||||
enabled: Boolean(projectId) && Boolean(env)
|
})),
|
||||||
|
[]
|
||||||
|
)
|
||||||
}))
|
}))
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -24,12 +24,6 @@ export const secretKeys = {
|
|||||||
// this is also used in secretSnapshot part
|
// this is also used in secretSnapshot part
|
||||||
getProjectSecret: ({ workspaceId, environment, secretPath }: TGetProjectSecretsKey) =>
|
getProjectSecret: ({ workspaceId, environment, secretPath }: TGetProjectSecretsKey) =>
|
||||||
[{ workspaceId, environment, secretPath }, "secrets"] as const,
|
[{ workspaceId, environment, secretPath }, "secrets"] as const,
|
||||||
getProjectSecretAllEnvironments: ({
|
|
||||||
workspaceId,
|
|
||||||
environment,
|
|
||||||
secretPath
|
|
||||||
}: TGetProjectSecretsKey) =>
|
|
||||||
[...secretKeys.getProjectSecret({ workspaceId, environment, secretPath }), "all"] as const,
|
|
||||||
getSecretVersion: (secretId: string) => [{ secretId }, "secret-versions"] as const
|
getSecretVersion: (secretId: string) => [{ secretId }, "secret-versions"] as const
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -101,7 +95,7 @@ export const useGetProjectSecrets = ({
|
|||||||
}: TGetProjectSecretsDTO & {
|
}: TGetProjectSecretsDTO & {
|
||||||
options?: Omit<
|
options?: Omit<
|
||||||
UseQueryOptions<
|
UseQueryOptions<
|
||||||
SecretV3RawSanitized[],
|
SecretV3RawResponse,
|
||||||
unknown,
|
unknown,
|
||||||
SecretV3RawSanitized[],
|
SecretV3RawSanitized[],
|
||||||
ReturnType<typeof secretKeys.getProjectSecret>
|
ReturnType<typeof secretKeys.getProjectSecret>
|
||||||
@@ -114,10 +108,7 @@ export const useGetProjectSecrets = ({
|
|||||||
// wait for all values to be available
|
// wait for all values to be available
|
||||||
enabled: Boolean(workspaceId && environment) && (options?.enabled ?? true),
|
enabled: Boolean(workspaceId && environment) && (options?.enabled ?? true),
|
||||||
queryKey: secretKeys.getProjectSecret({ workspaceId, environment, secretPath }),
|
queryKey: secretKeys.getProjectSecret({ workspaceId, environment, secretPath }),
|
||||||
queryFn: async () => {
|
queryFn: () => fetchProjectSecrets({ workspaceId, environment, secretPath }),
|
||||||
const resp = await fetchProjectSecrets({ workspaceId, environment, secretPath });
|
|
||||||
return mergePersonalSecrets(resp.secrets);
|
|
||||||
},
|
|
||||||
onError: (error) => {
|
onError: (error) => {
|
||||||
if (axios.isAxiosError(error)) {
|
if (axios.isAxiosError(error)) {
|
||||||
const serverResponse = error.response?.data as { message: string };
|
const serverResponse = error.response?.data as { message: string };
|
||||||
@@ -127,7 +118,11 @@ export const useGetProjectSecrets = ({
|
|||||||
text: serverResponse.message
|
text: serverResponse.message
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
select: useCallback(
|
||||||
|
(data: Awaited<ReturnType<typeof fetchProjectSecrets>>) => mergePersonalSecrets(data.secrets),
|
||||||
|
[]
|
||||||
|
)
|
||||||
});
|
});
|
||||||
|
|
||||||
export const useGetProjectSecretsAllEnv = ({
|
export const useGetProjectSecretsAllEnv = ({
|
||||||
@@ -139,7 +134,7 @@ export const useGetProjectSecretsAllEnv = ({
|
|||||||
|
|
||||||
const secrets = useQueries({
|
const secrets = useQueries({
|
||||||
queries: envs.map((environment) => ({
|
queries: envs.map((environment) => ({
|
||||||
queryKey: secretKeys.getProjectSecretAllEnvironments({
|
queryKey: secretKeys.getProjectSecret({
|
||||||
workspaceId,
|
workspaceId,
|
||||||
environment,
|
environment,
|
||||||
secretPath
|
secretPath
|
||||||
@@ -159,15 +154,17 @@ export const useGetProjectSecretsAllEnv = ({
|
|||||||
setIsErrorHandled.on();
|
setIsErrorHandled.on();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
queryFn: async () => {
|
queryFn: () => fetchProjectSecrets({ workspaceId, environment, secretPath }),
|
||||||
const resp = await fetchProjectSecrets({ workspaceId, environment, secretPath });
|
staleTime: 60 * 1000,
|
||||||
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
||||||
return mergePersonalSecrets(resp.secrets).reduce<Record<string, SecretV3RawSanitized>>(
|
select: useCallback(
|
||||||
(prev, curr) => ({ ...prev, [curr.key]: curr }),
|
(data: Awaited<ReturnType<typeof fetchProjectSecrets>>) =>
|
||||||
{}
|
mergePersonalSecrets(data.secrets).reduce<Record<string, SecretV3RawSanitized>>(
|
||||||
);
|
(prev, curr) => ({ ...prev, [curr.key]: curr }),
|
||||||
},
|
{}
|
||||||
staleTime: 5 * 60 * 1000
|
),
|
||||||
|
[]
|
||||||
|
)
|
||||||
}))
|
}))
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user