Skip to content

Commit db57ba4

Browse files
committed
refactor actionItem to be coming from hook
1 parent a2afc6b commit db57ba4

3 files changed

Lines changed: 41 additions & 22 deletions

File tree

x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/alert_context_menu.tsx

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { connect, ConnectedProps } from 'react-redux';
1313
import { ExceptionListType } from '@kbn/securitysolution-io-ts-list-types';
1414
import { get } from 'lodash/fp';
1515
import { DEFAULT_ACTION_BUTTON_WIDTH } from '@kbn/timelines-plugin/public';
16-
import { OsqueryActionItem } from '../../osquery/osquery_action_item';
16+
import { useOsqueryContextActionItem } from '../../osquery/use_osquery_context_action_item';
1717
import { OsqueryFlyout } from '../../osquery/osquery_flyout';
1818
import { useRouteSpy } from '../../../../common/utils/route/use_route_spy';
1919
import { buildGetAlertByIdQuery } from '../../../../common/components/exceptions/helpers';
@@ -196,13 +196,7 @@ const AlertContextMenuComponent: React.FC<AlertContextMenuProps & PropsFromRedux
196196
setPopover(false);
197197
}, []);
198198

199-
const osqueryActionItem = useMemo(
200-
() =>
201-
OsqueryActionItem({
202-
handleClick: handleOnOsqueryClick,
203-
}),
204-
[handleOnOsqueryClick]
205-
);
199+
const { osqueryActionItems } = useOsqueryContextActionItem({ handleClick: handleOnOsqueryClick });
206200

207201
const items: React.ReactElement[] = useMemo(
208202
() =>
@@ -211,12 +205,12 @@ const AlertContextMenuComponent: React.FC<AlertContextMenuProps & PropsFromRedux
211205
...addToCaseActionItems,
212206
...statusActionItems,
213207
...exceptionActionItems,
214-
...(agentId ? [osqueryActionItem] : []),
208+
...(agentId ? osqueryActionItems : []),
215209
]
216210
: [
217211
...addToCaseActionItems,
218212
...eventFilterActionItems,
219-
...(agentId ? [osqueryActionItem] : []),
213+
...(agentId ? osqueryActionItems : []),
220214
],
221215
[
222216
isEvent,
@@ -225,7 +219,7 @@ const AlertContextMenuComponent: React.FC<AlertContextMenuProps & PropsFromRedux
225219
statusActionItems,
226220
exceptionActionItems,
227221
agentId,
228-
osqueryActionItem,
222+
osqueryActionItems,
229223
eventFilterActionItems,
230224
]
231225
);

x-pack/plugins/security_solution/public/detections/components/osquery/osquery_action_item.tsx

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,12 @@ interface IProps {
1313
handleClick: () => void;
1414
}
1515

16-
export const OsqueryActionItem = ({ handleClick }: IProps) => {
17-
return (
18-
<EuiContextMenuItem
19-
key="osquery-action-item"
20-
data-test-subj="osquery-action-item"
21-
onClick={handleClick}
22-
>
23-
{ACTION_OSQUERY}
24-
</EuiContextMenuItem>
25-
);
26-
};
16+
export const OsqueryActionItem = ({ handleClick }: IProps) => (
17+
<EuiContextMenuItem
18+
key="osquery-action-item"
19+
data-test-subj="osquery-action-item"
20+
onClick={handleClick}
21+
>
22+
{ACTION_OSQUERY}
23+
</EuiContextMenuItem>
24+
);
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/*
2+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3+
* or more contributor license agreements. Licensed under the Elastic License
4+
* 2.0; you may not use this file except in compliance with the Elastic License
5+
* 2.0.
6+
*/
7+
8+
import React, { useMemo } from 'react';
9+
import { OsqueryActionItem } from './osquery_action_item';
10+
import { useKibana } from '../../../common/lib/kibana';
11+
12+
interface IProps {
13+
handleClick: () => void;
14+
}
15+
16+
export const useOsqueryContextActionItem = ({ handleClick }: IProps): any => {
17+
const osqueryActionItem = useMemo(
18+
() => <OsqueryActionItem handleClick={handleClick} />,
19+
[handleClick]
20+
);
21+
const permissions = useKibana().services.application.capabilities.osquery;
22+
23+
return {
24+
osqueryActionItems:
25+
permissions.writeLiveQueries || permissions.runSavedQueries ? [osqueryActionItem] : [],
26+
};
27+
};

0 commit comments

Comments
 (0)