From 7784b8a81c10f10e5966d657f9cdd83d34cc6ce1 Mon Sep 17 00:00:00 2001 From: Scott Wilson Date: Mon, 14 Jul 2025 19:10:28 -0700 Subject: [PATCH] improvement: add merge/closed status badge to closed secret change request table --- .../hooks/api/secretApprovalRequest/types.ts | 1 + .../SecretApprovalRequest.tsx | 75 ++++++++++++------- 2 files changed, 49 insertions(+), 27 deletions(-) diff --git a/frontend/src/hooks/api/secretApprovalRequest/types.ts b/frontend/src/hooks/api/secretApprovalRequest/types.ts index 588197261..caf1df320 100644 --- a/frontend/src/hooks/api/secretApprovalRequest/types.ts +++ b/frontend/src/hooks/api/secretApprovalRequest/types.ts @@ -43,6 +43,7 @@ export type TSecretApprovalRequest = { isReplicated?: boolean; slug: string; createdAt: string; + updatedAt: string; committerUserId: string; reviewers: { userId: string; diff --git a/frontend/src/pages/secret-manager/SecretApprovalsPage/components/SecretApprovalRequest/SecretApprovalRequest.tsx b/frontend/src/pages/secret-manager/SecretApprovalsPage/components/SecretApprovalRequest/SecretApprovalRequest.tsx index 360ab6e62..844a47e95 100644 --- a/frontend/src/pages/secret-manager/SecretApprovalsPage/components/SecretApprovalRequest/SecretApprovalRequest.tsx +++ b/frontend/src/pages/secret-manager/SecretApprovalsPage/components/SecretApprovalRequest/SecretApprovalRequest.tsx @@ -6,16 +6,19 @@ import { faCheckCircle, faChevronDown, faCodeBranch, + faCodeMerge, faMagnifyingGlass, - faSearch + faSearch, + faXmark } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { useSearch } from "@tanstack/react-router"; -import { formatDistance } from "date-fns"; +import { format, formatDistance } from "date-fns"; import { AnimatePresence, motion } from "framer-motion"; import { twMerge } from "tailwind-merge"; import { + Badge, Button, DropdownMenu, DropdownMenuContent, @@ -25,7 +28,8 @@ import { EmptyState, Input, Pagination, - Skeleton + Skeleton, + Tooltip } from "@app/components/v2"; import { ROUTE_PATHS } from "@app/const/routes"; import { @@ -308,7 +312,9 @@ export const SecretApprovalRequest = () => { createdAt, reviewers, status, - committerUser + committerUser, + hasMerged, + updatedAt } = secretApproval; const isReviewed = reviewers.some( ({ status: reviewStatus, userId }) => @@ -317,7 +323,7 @@ export const SecretApprovalRequest = () => { return (
setSelectedApprovalId(secretApproval.id)} @@ -325,29 +331,44 @@ export const SecretApprovalRequest = () => { if (evt.key === "Enter") setSelectedApprovalId(secretApproval.id); }} > -
- - {secretApproval.isReplicated - ? `${commits.length} secret pending import` - : generateCommitText(commits)} - #{secretApproval.slug} +
+
+ + {secretApproval.isReplicated + ? `${commits.length} secret pending import` + : generateCommitText(commits)} + #{secretApproval.slug} +
+ + Opened {formatDistance(new Date(createdAt), new Date())} ago by{" "} + {committerUser ? ( + <> + {committerUser?.firstName || ""} {committerUser?.lastName || ""} ( + {committerUser?.email}) + + ) : ( + Deleted User + )} + {!isReviewed && status === "open" && " - Review required"} +
- - Opened {formatDistance(new Date(createdAt), new Date())} ago by{" "} - {committerUser ? ( - <> - {committerUser?.firstName || ""} {committerUser?.lastName || ""} ( - {committerUser?.email}) - - ) : ( - Deleted User - )} - {!isReviewed && status === "open" && " - Review required"} - + {status === "close" && ( + +
+ + + {hasMerged ? "Merged" : "Closed"} + +
+
+ )}
); })}