diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings_by_resource/resource_findings/resource_findings_table.tsx b/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings_by_resource/resource_findings/resource_findings_table.tsx index 8300cdd503fee..3ed52499edbf1 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings_by_resource/resource_findings/resource_findings_table.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings_by_resource/resource_findings/resource_findings_table.tsx @@ -4,21 +4,27 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import React from 'react'; -import { EuiEmptyPrompt, EuiBasicTable, CriteriaWithPagination, Pagination } from '@elastic/eui'; +import React, { useMemo, useState } from 'react'; +import { + EuiEmptyPrompt, + EuiBasicTable, + CriteriaWithPagination, + Pagination, + EuiBasicTableColumn, + EuiTableActionsColumnType, +} from '@elastic/eui'; import { extractErrorMessage } from '../../../../../common/utils/helpers'; import * as TEXT from '../../translations'; import type { ResourceFindingsResult } from './use_resource_findings'; -import { getFindingsColumns } from '../../layout/findings_layout'; +import { getExpandColumn, getFindingsColumns } from '../../layout/findings_layout'; import type { CspFinding } from '../../types'; +import { FindingsRuleFlyout } from '../../findings_flyout/findings_flyout'; interface Props extends ResourceFindingsResult { pagination: Pagination; setTableOptions(options: CriteriaWithPagination): void; } -const columns = getFindingsColumns(); - const ResourceFindingsTableComponent = ({ error, data, @@ -26,18 +32,36 @@ const ResourceFindingsTableComponent = ({ pagination, setTableOptions, }: Props) => { + const [selectedFinding, setSelectedFinding] = useState(); + + const columns: [ + EuiTableActionsColumnType, + ...Array> + ] = useMemo( + () => [getExpandColumn({ onClick: setSelectedFinding }), ...getFindingsColumns()], + [] + ); + if (!loading && !data?.page.length) return {TEXT.NO_FINDINGS}} />; return ( - + <> + + {selectedFinding && ( + setSelectedFinding(undefined)} + /> + )} + ); };