From 2ff3818ecbfd281f84ec1fe83585615a28cad110 Mon Sep 17 00:00:00 2001 From: Akhil Mohan Date: Thu, 3 Aug 2023 22:23:14 +0530 Subject: [PATCH] feat: made changes as discussed with team on dropzone --- .../SecretDropzone/SecretDropzone.tsx | 61 ++++++++++++++++--- 1 file changed, 52 insertions(+), 9 deletions(-) diff --git a/frontend/src/views/DashboardPage/components/SecretDropzone/SecretDropzone.tsx b/frontend/src/views/DashboardPage/components/SecretDropzone/SecretDropzone.tsx index 699edea84..6bb747a20 100644 --- a/frontend/src/views/DashboardPage/components/SecretDropzone/SecretDropzone.tsx +++ b/frontend/src/views/DashboardPage/components/SecretDropzone/SecretDropzone.tsx @@ -2,7 +2,13 @@ import { ChangeEvent, DragEvent, useEffect, useState } from "react"; import { Controller, useForm } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { faSquareCheck } from "@fortawesome/free-regular-svg-icons"; -import { faClone, faSearch, faSquareXmark, faUpload } from "@fortawesome/free-solid-svg-icons"; +import { + faClone, + faKey, + faSearch, + faSquareXmark, + faUpload +} from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { yupResolver } from "@hookform/resolvers/yup"; import { twMerge } from "tailwind-merge"; @@ -14,6 +20,7 @@ import { parseDotEnv } from "@app/components/utilities/parseDotEnv"; import { Button, Checkbox, + EmptyState, FormControl, IconButton, Input, @@ -85,8 +92,17 @@ export const SecretDropzone = ({ const { createNotification } = useNotificationContext(); const { popUp, handlePopUpClose, handlePopUpToggle } = usePopUp(["importSecEnv"] as const); const [searchFilter, setSearchFilter] = useState(""); + const [shouldIncludeValues, setShouldIncludeValues] = useState(true); - const { handleSubmit, control, watch, register, reset, setValue } = useForm({ + const { + handleSubmit, + control, + watch, + register, + reset, + setValue, + formState: { isDirty } + } = useForm({ resolver: yupResolver(formSchema), defaultValues: { secretPath: "/", environment: environments?.[0]?.slug } }); @@ -169,7 +185,10 @@ export const SecretDropzone = ({ const secretsToBePulled: Record = {}; Object.keys(data.secrets || {}).forEach((key) => { if (data.secrets[key]) { - secretsToBePulled[key] = { value: data.secrets[key] || "", comments: [""] }; + secretsToBePulled[key] = { + value: (shouldIncludeValues && data.secrets[key]) || "", + comments: [""] + }; } }); onParsedEnv(secretsToBePulled); @@ -219,7 +238,12 @@ export const SecretDropzone = ({ accept=".txt,.env,.yml,.yaml,.json" onChange={handleFileUpload} /> -
+

OR

@@ -235,12 +259,12 @@ export const SecretDropzone = ({ >
@@ -309,14 +333,18 @@ export const SecretDropzone = ({
+ {!isSecretsLoading && !secrets?.secrets?.length && ( + + )}
{isSecretsLoading && - Array.apply(0, Array(4)).map((_x, i) => ( + Array.apply(0, Array(2)).map((_x, i) => ( ))} + {secrets?.secrets ?.filter(({ key }) => key.toLowerCase().includes(searchFilter.toLowerCase()) @@ -338,8 +366,23 @@ export const SecretDropzone = ({ /> ))}
-
-