import { faEllipsis, faFileAlt, faTrash, faUserPlus } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { twMerge } from "tailwind-merge"; import { ProjectPermissionCan } from "@app/components/permissions"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, EmptyState, Table, TableContainer, TableSkeleton, TBody, Td, Th, THead, Tooltip, Tr } from "@app/components/v2"; import { ProjectPermissionPkiTemplateActions, ProjectPermissionSub, useSubscription } from "@app/context"; import { useGetCaCertTemplates } from "@app/hooks/api"; import { UsePopUpState } from "@app/hooks/usePopUp"; type Props = { caId: string; handlePopUpOpen: ( popUpName: keyof UsePopUpState< ["certificateTemplate", "deleteCertificateTemplate", "enrollmentOptions", "upgradePlan"] >, data?: { id?: string; name?: string; } ) => void; }; export const CertificateTemplatesTable = ({ handlePopUpOpen, caId }: Props) => { const { subscription } = useSubscription(); const { data, isPending } = useGetCaCertTemplates(caId); return (
{isPending && } {!isPending && data?.certificateTemplates.map((certificateTemplate) => { return ( ); })}
Name
{certificateTemplate.name}
handlePopUpOpen("certificateTemplate", { id: certificateTemplate.id }) } icon={} > Manage Policies {(isAllowed) => ( { if (!subscription?.pkiEst) { handlePopUpOpen("upgradePlan"); return; } handlePopUpOpen("enrollmentOptions", { id: certificateTemplate.id }); }} className={twMerge( !isAllowed && "pointer-events-none cursor-not-allowed opacity-50" )} disabled={!isAllowed} icon={} > Manage Enrollment )} {(isAllowed) => ( } onClick={() => handlePopUpOpen("deleteCertificateTemplate", { id: certificateTemplate.id, name: certificateTemplate.name }) } > Delete Template )}
{!isPending && !data?.certificateTemplates?.length && ( )}
); };