import React from "react"; import { getPathWithQueryParams } from "utilities/url"; import { CellProps } from "react-table"; import { INumberCellProps, IStringCellProps, } from "interfaces/datatable_config"; import { IOperatingSystemKernels } from "interfaces/operating_system"; import PATHS from "router/paths"; import ViewAllHostsLink from "components/ViewAllHostsLink"; import TooltipWrapper from "components/TooltipWrapper"; import TextCell from "components/TableContainer/DataTable/TextCell"; import LinkCell from "components/TableContainer/DataTable/LinkCell"; import HeaderCell from "components/TableContainer/DataTable/HeaderCell"; import VulnerabilitiesCell from "../VulnerabilitiesCell"; interface IOsKernelsTableConfigProps { teamId?: number; osName: string; osVersion: string; } type IHostCountCellProps = INumberCellProps; type IVersionCellProps = IStringCellProps; type IViewAllHostsLinkProps = CellProps; type IVulnCellProps = CellProps; const generateTableConfig = ({ teamId, osName, osVersion, }: IOsKernelsTableConfigProps) => { const tableHeaders = [ { title: "Version", Header: "Version", disableSortBy: true, accessor: "version", Cell: (cellProps: IVersionCellProps): JSX.Element => { if (!cellProps.cell.value) { // renders desired empty state return ; } const { id } = cellProps.row.original; const softwareVersionDetailsPath = getPathWithQueryParams( PATHS.SOFTWARE_VERSION_DETAILS(id.toString()), { team_id: teamId } ); return ( ); }, }, { title: "Vulnerabilities", Header: "Vulnerabilities", disableSortBy: true, accessor: "vulnerabilities", Cell: (cellProps: IVulnCellProps): JSX.Element => { return ; }, }, { title: "Hosts", Header: () => { const titleWithToolTip = ( Linux hosts may have multiple kernels
installed. Containers do not have their
own kernel. } className="status-header" > Hosts
); return ; }, disableSortBy: true, accessor: "hosts_count", Cell: (cellProps: IHostCountCellProps): JSX.Element => ( ), }, { title: "", Header: "", accessor: "linkToFilteredHosts", disableSortBy: true, Cell: (cellProps: IViewAllHostsLinkProps) => { return ( <> {cellProps.row.original && ( )} ); }, }, ]; return tableHeaders; }; export default generateTableConfig;