mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-15 23:47:06 +00:00
feat: added new secret input component and updated toolbar key special prop to innerKey
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
export {
|
||||
useCreateFolder,
|
||||
useDeleteFolder,
|
||||
useGetFoldersByEnv,
|
||||
useGetProjectFolders,
|
||||
useGetProjectFoldersBatch,
|
||||
useUpdateFolder
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { useCallback } from "react";
|
||||
import { useCallback, useMemo } from "react";
|
||||
import { useMutation, useQueries, useQuery, useQueryClient } from "@tanstack/react-query";
|
||||
|
||||
import { apiRequest } from "@app/config/request";
|
||||
@@ -9,6 +9,7 @@ import {
|
||||
DeleteFolderDTO,
|
||||
GetProjectFoldersBatchDTO,
|
||||
GetProjectFoldersDTO,
|
||||
TGetFoldersByEnvDTO,
|
||||
TSecretFolder,
|
||||
UpdateFolderDTO
|
||||
} from "./types";
|
||||
@@ -62,6 +63,48 @@ export const useGetProjectFolders = ({
|
||||
)
|
||||
});
|
||||
|
||||
export const useGetFoldersByEnv = ({
|
||||
parentFolderPath,
|
||||
workspaceId,
|
||||
environments,
|
||||
parentFolderId
|
||||
}: TGetFoldersByEnvDTO) => {
|
||||
const folders = useQueries({
|
||||
queries: environments.map((env) => ({
|
||||
queryKey: queryKeys.getSecretFolders(workspaceId, env, parentFolderPath || parentFolderId),
|
||||
queryFn: async () => fetchProjectFolders(workspaceId, env, parentFolderId, parentFolderPath),
|
||||
enabled: Boolean(workspaceId) && Boolean(env)
|
||||
}))
|
||||
});
|
||||
|
||||
const folderNames = useMemo(() => {
|
||||
const names = new Set<string>();
|
||||
folders?.forEach(({ data }) => {
|
||||
data?.folders.forEach(({ name }) => {
|
||||
names.add(name);
|
||||
});
|
||||
});
|
||||
return [...names];
|
||||
}, [(folders || []).map((folder) => folder.data)]);
|
||||
|
||||
const isFolderPresentInEnv = useCallback(
|
||||
(name: string, env: string) => {
|
||||
const selectedEnvIndex = environments.indexOf(env);
|
||||
if (selectedEnvIndex !== -1) {
|
||||
return Boolean(
|
||||
folders?.[selectedEnvIndex]?.data?.folders?.find(
|
||||
({ name: folderName }) => folderName === name
|
||||
)
|
||||
);
|
||||
}
|
||||
return false;
|
||||
},
|
||||
[(folders || []).map((folder) => folder.data)]
|
||||
);
|
||||
|
||||
return { folders, folderNames, isFolderPresentInEnv };
|
||||
};
|
||||
|
||||
export const useGetProjectFoldersBatch = ({
|
||||
folders = [],
|
||||
isPaused,
|
||||
|
||||
@@ -17,6 +17,13 @@ export type GetProjectFoldersBatchDTO = {
|
||||
parentFolderPath?: string;
|
||||
};
|
||||
|
||||
export type TGetFoldersByEnvDTO = {
|
||||
environments: string[];
|
||||
workspaceId: string;
|
||||
parentFolderPath?: string;
|
||||
parentFolderId?: string;
|
||||
};
|
||||
|
||||
export type CreateFolderDTO = {
|
||||
workspaceId: string;
|
||||
environment: string;
|
||||
|
||||
Reference in New Issue
Block a user