import { faBan, faCertificate, faEllipsis, faPencil, faTrash } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { twMerge } from "tailwind-merge"; import { ProjectPermissionCan } from "@app/components/permissions"; import { Badge, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, EmptyState, Table, TableContainer, TableSkeleton, TBody, Td, Th, THead, Tooltip, Tr } from "@app/components/v2"; import { ProjectPermissionActions, ProjectPermissionSub, useProject } from "@app/context"; import { CaStatus, CaType, useListExternalCasByProjectId } from "@app/hooks/api"; import { caStatusToNameMap, getCaStatusBadgeVariant } from "@app/hooks/api/ca/constants"; import { UsePopUpState } from "@app/hooks/usePopUp"; type Props = { handlePopUpOpen: ( popUpName: keyof UsePopUpState<["ca", "deleteCa", "caStatus", "upgradePlan"]>, data?: { name?: string; type?: CaType; status?: CaStatus; description?: string; } ) => void; }; export const ExternalCaTable = ({ handlePopUpOpen }: Props) => { const { currentProject } = useProject(); const { data, isPending } = useListExternalCasByProjectId(currentProject.id); return (
{isPending && } {!isPending && data && data.length > 0 && data.map((ca) => { return ( { handlePopUpOpen("ca", { name: ca.name, type: ca.type }); }} > ); })}
Name Type Status
{ca.name} {ca.type} {caStatusToNameMap[ca.status]}
{(isAllowed) => ( { e.stopPropagation(); handlePopUpOpen("ca", { name: ca.name, type: ca.type }); }} disabled={!isAllowed} icon={} > Edit CA )} {(ca.status === CaStatus.ACTIVE || ca.status === CaStatus.DISABLED) && ( {(isAllowed) => ( { e.stopPropagation(); handlePopUpOpen("caStatus", { name: ca.name, type: ca.type, status: ca.status === CaStatus.ACTIVE ? CaStatus.DISABLED : CaStatus.ACTIVE }); }} disabled={!isAllowed} icon={} > {`${ca.status === CaStatus.ACTIVE ? "Disable" : "Enable"} CA`} )} )} {(isAllowed) => ( { e.stopPropagation(); handlePopUpOpen("deleteCa", { name: ca.name, type: ca.type }); }} disabled={!isAllowed} icon={} > Delete CA )}
{!isPending && data?.length === 0 && ( )}
); };