import { faChevronRight, faKey, faMinusSquare, faPencilSquare, faPlusSquare, faSquare } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { SecretInput, Table, TableContainer, Tag, TBody, Td, Th, THead, Tooltip, Tr } from "@app/components/v2"; import { Blur } from "@app/components/v2/Blur"; import { useToggle } from "@app/hooks"; import { SecretV3RawSanitized } from "@app/hooks/api/secrets/types"; export enum TDiffModes { NoChange = "no change", Deleted = "deleted", Modified = "modified", Created = "created" } type Props = { mode: TDiffModes; preSecret?: SecretV3RawSanitized; postSecret: SecretV3RawSanitized; }; export type TDiffView = { mode: TDiffModes; pre?: T; post: T; }; export const renderIcon = (mode: TDiffModes) => { if (mode === TDiffModes.NoChange) return ; if (mode === TDiffModes.Deleted) return ; if (mode === TDiffModes.Modified) return ; return ; }; export const SecretItem = ({ mode, preSecret, postSecret }: Props) => { const [isExpanded, setIsExpanded] = useToggle(); const isModified = mode === "modified"; return ( <>
{ if (evt.key === "Enter") setIsExpanded.toggle(); }} >
{renderIcon(mode)}
{mode === "modified" && !preSecret?.isRotatedSecret ? ( <>
{preSecret?.key}
v{preSecret?.version}
v{postSecret?.version}
) : ( <> {postSecret.key} {postSecret.isRotatedSecret && ( Rotated Secrets are not affected by Rollback )} )}
{isExpanded && (
{isModified ? ( <> ) : ( )} {isModified && ( )} {isModified && ( )} {Boolean(preSecret?.idOverride || postSecret?.idOverride) && ( {isModified && ( )} )} {isModified && ( )} {isModified && ( )}
TypeBefore rollback After rollbackValue
Key{preSecret?.key}{postSecret.key}
Value {preSecret?.secretValueHidden ? ( ) : ( )} {postSecret?.secretValueHidden ? ( ) : ( )}
Override
Comment{preSecret?.comment}{postSecret?.comment}
Tags {preSecret?.tags?.map(({ slug, id: tagId, color }) => (
{slug}
))}
{postSecret?.tags?.map(({ slug, id: tagId, color }) => (
{slug}
))}
)} ); };