Skip to content

Commit 54d1032

Browse files
committed
styles
1 parent a75a9b8 commit 54d1032

File tree

3 files changed

+28
-16
lines changed

3 files changed

+28
-16
lines changed

x-pack/plugins/security_solution/common/search_strategy/timeline/events/details/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { Inspect, Maybe } from '../../../common';
99
import { TimelineRequestOptionsPaginated } from '../..';
1010

1111
export interface TimelineEventsDetailsItem {
12+
category: string;
1213
field: string;
1314
values?: Maybe<string[]>;
1415
// eslint-disable-next-line @typescript-eslint/no-explicit-any

x-pack/plugins/security_solution/public/common/components/event_details/event_details.tsx

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
*/
66

77
import { EuiLink, EuiTabbedContent, EuiTabbedContentTab } from '@elastic/eui';
8-
import React, { useCallback, useMemo, useState } from 'react';
8+
import React, { useCallback, useEffect, useMemo, useState } from 'react';
99
import styled from 'styled-components';
1010

1111
import { get } from 'lodash/fp';
@@ -49,13 +49,13 @@ Details.displayName = 'Details';
4949

5050
export const EventDetails = React.memo<Props>(
5151
({ browserFields, columnHeaders, data, id, onUpdateColumns, timelineId, toggleColumn }) => {
52-
const [view, setView] = useState<View>(EventsViewType.tableView);
53-
54-
const handleTabClick = useCallback((e) => setView(e.id), [setView]);
5552
const eventKindData = useMemo(() => (data || []).find((item) => item.field === 'event.kind'), [
5653
data,
5754
]);
5855
const eventKind = get('values.0', eventKindData);
56+
const [view, setView] = useState<View>(EventsViewType.tableView);
57+
const handleTabClick = useCallback((e) => setView(e.id), [setView]);
58+
5959
const alerts = useMemo(
6060
() => [
6161
{
@@ -66,13 +66,12 @@ export const EventDetails = React.memo<Props>(
6666
data={data}
6767
eventId={id}
6868
browserFields={browserFields}
69-
columnHeaders={columnHeaders}
7069
timelineId={timelineId}
7170
/>
7271
),
7372
},
7473
],
75-
[data, id, browserFields, columnHeaders, timelineId]
74+
[data, id, browserFields, timelineId]
7675
);
7776
const tabs: EuiTabbedContentTab[] = useMemo(
7877
() => [
@@ -111,6 +110,12 @@ export const EventDetails = React.memo<Props>(
111110
]
112111
);
113112

113+
useEffect(() => {
114+
if (data != null && eventKind !== 'event') {
115+
setView(EventsViewType.summaryView);
116+
}
117+
}, [data, eventKind]);
118+
114119
const selectedTab = useMemo(() => tabs.find((tab) => tab.id === view), [tabs, view]);
115120

116121
return (

x-pack/plugins/security_solution/public/common/components/event_details/summary_view.tsx

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ import { get, getOr } from 'lodash/fp';
1515
import { TimelineEventsDetailsItem } from '../../../../common/search_strategy';
1616
import { OverflowField } from '../tables/helpers';
1717
import { FormattedFieldValue } from '../../../timelines/components/timeline/body/renderers/formatted_field';
18-
import { ColumnHeaderOptions } from '../../../timelines/store/timeline/model';
1918
import * as i18n from './translations';
19+
import { BrowserFields } from '../../../../common/search_strategy/index_fields';
2020

2121
type Summary = Array<{ title: string; description: JSX.Element }>;
2222

@@ -33,15 +33,21 @@ const fields = [
3333
];
3434

3535
const SummaryViewComponent: React.FC<{
36+
browserFields: BrowserFields;
3637
data: TimelineEventsDetailsItem[];
3738
eventId: string;
38-
columnHeaders: ColumnHeaderOptions[];
3939
timelineId: string;
40-
}> = ({ data, eventId, columnHeaders, timelineId }) => {
40+
}> = ({ data, eventId, timelineId, browserFields }) => {
4141
const summaryList = useMemo(() => {
42-
return data.reduce<Summary>((acc, item) => {
43-
const column = columnHeaders.find((c) => c.id === item.field);
42+
return (data || []).reduce<Summary>((acc, item) => {
4443
const fieldValue = getOr(null, 'values.0', item);
44+
const eventCategory = item.category;
45+
const fieldType = getOr(
46+
'string',
47+
`${eventCategory}.fields.${item.field}.type`,
48+
browserFields
49+
);
50+
const fieldFormat = get(`${eventCategory}.fields.${item.field}.format`, browserFields);
4551
return fields.indexOf(item.field) >= 0
4652
? [
4753
...acc,
@@ -51,29 +57,29 @@ const SummaryViewComponent: React.FC<{
5157
<FormattedFieldValue
5258
contextId={`alert-details-value-formatted-field-value-${timelineId}-${eventId}-${item.field}-${fieldValue}`}
5359
eventId={eventId}
54-
fieldFormat={column?.format}
60+
fieldFormat={fieldFormat}
5561
fieldName={item.field}
56-
fieldType={column?.type ?? 'string'}
62+
fieldType={fieldType}
5763
value={fieldValue}
5864
/>
5965
),
6066
},
6167
]
6268
: acc;
6369
}, []);
64-
}, [data, columnHeaders, eventId, timelineId]);
70+
}, [data, eventId, timelineId, browserFields]);
6571

6672
const messageData = useMemo(() => (data || []).find((item) => item.field === 'message'), [data]);
6773
const message = get('values.0', messageData);
6874

6975
return (
7076
<>
7177
<EuiSpacer />
72-
<EuiDescriptionList type="responsiveColumn" listItems={summaryList} />
78+
<EuiDescriptionList type="responsiveColumn" listItems={summaryList} compressed />
7379
{message && (
7480
<>
7581
<EuiSpacer />
76-
<EuiDescriptionList>
82+
<EuiDescriptionList compressed>
7783
<EuiDescriptionListTitle>{i18n.INVESTIGATION_GUIDE}</EuiDescriptionListTitle>
7884
<EuiDescriptionListDescription>
7985
<OverflowField value={message} />

0 commit comments

Comments
 (0)