From 3fa450b9a7bdbabe11dd26ac54f2c102c52cc2a1 Mon Sep 17 00:00:00 2001 From: carlosmonastyrski Date: Mon, 3 Mar 2025 16:13:03 -0300 Subject: [PATCH 1/4] Fix for secrets reminder modal, now saving the reminder on modal close --- .../components/SecretListView/SecretDetailSidebar.tsx | 9 +++++++-- .../components/SecretListView/SecretListView.tsx | 7 +++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretDetailSidebar.tsx b/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretDetailSidebar.tsx index 802c30523..214aca412 100644 --- a/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretDetailSidebar.tsx +++ b/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretDetailSidebar.tsx @@ -192,6 +192,10 @@ export const SecretDetailSidebar = ({ await onSaveSecret(secret, { ...secret, ...data }, () => reset()); }; + const handleReminderSubmit = async (reminderRepeatDays: number | null, reminderNote: string | null) => { + await onSaveSecret(secret, { ...secret, reminderRepeatDays, reminderNote, isReminderEvent: true }, () => {}); + } + const [createReminderFormOpen, setCreateReminderFormOpen] = useToggle(false); const secretReminderRepeatDays = watch("reminderRepeatDays"); @@ -207,8 +211,9 @@ export const SecretDetailSidebar = ({ setCreateReminderFormOpen.toggle(); if (data) { - setValue("reminderRepeatDays", data.days, { shouldDirty: true }); - setValue("reminderNote", data.note, { shouldDirty: true }); + setValue("reminderRepeatDays", data.days, { shouldDirty: false }); + setValue("reminderNote", data.note, { shouldDirty: false }); + handleReminderSubmit(data.days, data.note) } }} /> diff --git a/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretListView.tsx b/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretListView.tsx index 3a89a58ab..72367aba8 100644 --- a/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretListView.tsx +++ b/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretListView.tsx @@ -158,7 +158,8 @@ export const SecretListView = ({ comment, reminderRepeatDays, reminderNote, - secretMetadata + secretMetadata, + isReminderEvent } = modSecret; const hasKeyChanged = oldKey !== key && key; @@ -234,7 +235,9 @@ export const SecretListView = ({ queryClient.invalidateQueries({ queryKey: secretApprovalRequestKeys.count({ workspaceId }) }); - handlePopUpClose("secretDetail"); + if (!isReminderEvent) { + handlePopUpClose("secretDetail"); + } createNotification({ type: isProtectedBranch && !personalAction ? "info" : "success", text: From ec9631107d6b978b9cb31b71d417390dc6416bdc Mon Sep 17 00:00:00 2001 From: carlosmonastyrski Date: Mon, 3 Mar 2025 16:36:14 -0300 Subject: [PATCH 2/4] Type fixes --- frontend/src/hooks/api/secrets/types.ts | 1 + .../components/SecretListView/SecretDetailSidebar.tsx | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/frontend/src/hooks/api/secrets/types.ts b/frontend/src/hooks/api/secrets/types.ts index cbed26f8f..92dc220b8 100644 --- a/frontend/src/hooks/api/secrets/types.ts +++ b/frontend/src/hooks/api/secrets/types.ts @@ -51,6 +51,7 @@ export type SecretV3RawSanitized = { folderId?: string; skipMultilineEncoding?: boolean; secretMetadata?: { key: string; value: string }[]; + isReminderEvent?: boolean; }; export type SecretV3Raw = { diff --git a/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretDetailSidebar.tsx b/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretDetailSidebar.tsx index 214aca412..168cd6f43 100644 --- a/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretDetailSidebar.tsx +++ b/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretDetailSidebar.tsx @@ -192,8 +192,8 @@ export const SecretDetailSidebar = ({ await onSaveSecret(secret, { ...secret, ...data }, () => reset()); }; - const handleReminderSubmit = async (reminderRepeatDays: number | null, reminderNote: string | null) => { - await onSaveSecret(secret, { ...secret, reminderRepeatDays, reminderNote, isReminderEvent: true }, () => {}); + const handleReminderSubmit = async (reminderRepeatDays: number | null | undefined, reminderNote: string | null | undefined) => { + await onSaveSecret(secret, { ...secret, reminderRepeatDays, reminderNote, isReminderEvent: true }, () => { }); } const [createReminderFormOpen, setCreateReminderFormOpen] = useToggle(false); From 17a46748216f57a0548b58cff944f66122effb2d Mon Sep 17 00:00:00 2001 From: carlosmonastyrski Date: Mon, 3 Mar 2025 17:04:02 -0300 Subject: [PATCH 3/4] Fix success notification message on reminder updates --- .../components/SecretListView/SecretListView.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretListView.tsx b/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretListView.tsx index 72367aba8..acfb44f30 100644 --- a/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretListView.tsx +++ b/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretListView.tsx @@ -238,12 +238,13 @@ export const SecretListView = ({ if (!isReminderEvent) { handlePopUpClose("secretDetail"); } + const successMessage = isReminderEvent ? "secret reminder" : "secrets"; createNotification({ type: isProtectedBranch && !personalAction ? "info" : "success", text: isProtectedBranch && !personalAction ? "Requested changes have been sent for review" - : "Successfully saved secrets" + : `Successfully saved ${successMessage}` }); } catch (error) { console.log(error); From 23bd048bb97427fc9ce06c0044633db8b9313ee6 Mon Sep 17 00:00:00 2001 From: carlosmonastyrski Date: Mon, 3 Mar 2025 17:20:44 -0300 Subject: [PATCH 4/4] Fix delete secret reminder notification --- .../components/SecretListView/SecretListView.tsx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretListView.tsx b/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretListView.tsx index acfb44f30..59551946e 100644 --- a/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretListView.tsx +++ b/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretListView.tsx @@ -238,13 +238,20 @@ export const SecretListView = ({ if (!isReminderEvent) { handlePopUpClose("secretDetail"); } - const successMessage = isReminderEvent ? "secret reminder" : "secrets"; + + let successMessage; + if (isReminderEvent) { + successMessage = reminderRepeatDays ? "Successfully saved secret reminder" : "Successfully deleted secret reminder"; + } else { + successMessage = "Successfully saved secrets"; + } + createNotification({ type: isProtectedBranch && !personalAction ? "info" : "success", text: isProtectedBranch && !personalAction ? "Requested changes have been sent for review" - : `Successfully saved ${successMessage}` + : successMessage }); } catch (error) { console.log(error);