Skip to content

Commit 2eb2063

Browse files
committed
add selectors for data
review changes
1 parent 3e0303d commit 2eb2063

2 files changed

Lines changed: 17 additions & 7 deletions

File tree

x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/selectors.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,13 @@ export const getActivityLogRequestLoaded: (
394394
isLoadedResourceState(activityLog)
395395
);
396396

397+
export const getActivityLogIterableData: (
398+
state: Immutable<EndpointState>
399+
) => Immutable<ActivityLog['data']> = createSelector(getActivityLogData, (activityLog) => {
400+
const emptyArray: ActivityLog['data'] = [];
401+
return isLoadedResourceState(activityLog) ? activityLog.data.data : emptyArray;
402+
});
403+
397404
export const getActivityLogError: (
398405
state: Immutable<EndpointState>
399406
) => ServerApiError | undefined = createSelector(getActivityLogData, (activityLog) => {

x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/details/endpoint_activity_log.tsx

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,17 @@ import { EndpointAction } from '../../store/action';
1919
import {
2020
getActivityLogDataPaging,
2121
getActivityLogError,
22+
getActivityLogIterableData,
23+
getActivityLogRequestLoaded,
2224
getActivityLogRequestLoading,
2325
} from '../../store/selectors';
2426

2527
export const EndpointActivityLog = memo(
2628
({ activityLog }: { activityLog: AsyncResourceState<Immutable<ActivityLog>> }) => {
27-
const activityLoading = useEndpointSelector(getActivityLogRequestLoading);
28-
const activityError = useEndpointSelector(getActivityLogError);
29+
const activityLogLoading = useEndpointSelector(getActivityLogRequestLoading);
30+
const activityLogLoaded = useEndpointSelector(getActivityLogRequestLoaded);
31+
const activityLogData = useEndpointSelector(getActivityLogIterableData);
32+
const activityLogError = useEndpointSelector(getActivityLogError);
2933
const dispatch = useDispatch<(a: EndpointAction) => void>();
3034
const { page, pageSize } = useEndpointSelector(getActivityLogDataPaging);
3135
// TODO
@@ -44,8 +48,7 @@ export const EndpointActivityLog = memo(
4448
return (
4549
<>
4650
<EuiSpacer size="l" />
47-
{(activityLog.type === 'LoadedResourceState' && !activityLog.data.data.length) ||
48-
activityError ? (
51+
{activityLogLoading || activityLogError ? (
4952
<EuiEmptyPrompt
5053
iconType="editorUnorderedList"
5154
titleSize="s"
@@ -56,11 +59,11 @@ export const EndpointActivityLog = memo(
5659
<>
5760
<SearchBar onSearch={onSearch} placeholder={i18.SEARCH_ACTIVITY_LOG} />
5861
<EuiSpacer size="l" />
59-
{activityLoading ? (
62+
{activityLogLoading ? (
6063
<EuiLoadingContent lines={3} />
6164
) : (
62-
activityLog.type === 'LoadedResourceState' &&
63-
activityLog.data.data.map((logEntry) => (
65+
activityLogLoaded &&
66+
activityLogData.map((logEntry) => (
6467
<LogEntry key={`${logEntry.item.id}`} logEntry={logEntry} />
6568
))
6669
)}

0 commit comments

Comments
 (0)