Skip to content

Commit 0950fd1

Browse files
authored
Toggle fields, metadata display inside info display (#671)
* Include `fields` and `metadata` in the graphql query * Pass through toggleDisplay props * Transform fields, metadata array into objects for display * Format fix
1 parent ce0c391 commit 0950fd1

File tree

4 files changed

+39
-5
lines changed

4 files changed

+39
-5
lines changed

src/components/containers/EventsBrowser.tsx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import dayjs from "dayjs";
2727
import relativeTime from "dayjs/plugin/relativeTime";
2828
dayjs.extend(relativeTime);
2929

30-
type EventBrowserProps = {
30+
export type EventBrowserProps = {
3131
auditLogToken: string;
3232
mount?: boolean;
3333
headerTitle?: string;
@@ -48,6 +48,10 @@ type EventBrowserProps = {
4848
theme?: string;
4949
dataLoading?: any;
5050
refreshToken?: () => void;
51+
toggleDisplay?: {
52+
fields?: boolean;
53+
metadata?: boolean;
54+
};
5155
};
5256

5357
interface EventBrowserState {
@@ -619,9 +623,9 @@ export default connect(
619623
dataLoading: state.ui.loadingData,
620624
tableHeaderItems: state.ui.eventsUiData.eventTableHeaderItems,
621625
}),
622-
(dispatch: any) => ({
626+
(dispatch: any, ownProps: EventBrowserProps) => ({
623627
requestEventSearch(query, handleRefreshToken) {
624-
return dispatch(requestEventSearch(query, handleRefreshToken));
628+
return dispatch(requestEventSearch(query, handleRefreshToken, ownProps.toggleDisplay));
625629
},
626630
createSession(token, host) {
627631
return dispatch(createSession(token, host));

src/dev/LogsViewerWrapper.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ const LogsViewerWrapper = (props) => {
7575
disableShowRawEvent={props.disableShowRawEvent ? props.disableShowRawEvent : false}
7676
skipViewLogEvent={true}
7777
refreshToken={fetchToken}
78+
toggleDisplay={{ fields: true, metadata: true }}
7879
/>
7980
);
8081
};

src/index.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ type RetracedEventsBrowserProps = {
2525
fields?: EventField[];
2626
skipViewLogEvent?: boolean;
2727
refreshToken?: () => void;
28+
toggleDisplay?: {
29+
fields?: boolean;
30+
metadata?: boolean;
31+
};
2832
};
2933

3034
const store = configStore();
@@ -48,6 +52,7 @@ export default class RetracedEventsBrowser extends React.Component<RetracedEvent
4852
disableShowRawEvent={this.props.disableShowRawEvent}
4953
skipViewLogEvent={this.props.skipViewLogEvent}
5054
refreshToken={this.props.refreshToken}
55+
toggleDisplay={this.props.toggleDisplay}
5156
/>
5257
</Provider>
5358
</div>

src/redux/data/events/thunks.js

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@ import _ from "lodash";
22
import { receiveEventList } from "./actions";
33
import { loadingData } from "../../ui/actions";
44

5-
export function requestEventSearch(query, refreshToken) {
5+
function getObjFromKeyValArray(arr) {
6+
return arr?.reduce((acc, cur) => ({ ...acc, [cur.key]: cur.value }), {});
7+
}
8+
9+
export function requestEventSearch(query, refreshToken, toggleDisplay) {
610
return async (dispatch, getState) => {
711
dispatch(loadingData("eventFetch", true));
812
let data;
@@ -54,6 +58,22 @@ export function requestEventSearch(query, refreshToken) {
5458
display {
5559
markdown
5660
}
61+
${
62+
toggleDisplay?.fields
63+
? `fields{
64+
key
65+
value
66+
}`
67+
: ""
68+
}
69+
${
70+
toggleDisplay?.metadata
71+
? `metadata{
72+
key
73+
value
74+
}`
75+
: ""
76+
}
5777
is_failure
5878
is_anonymous
5979
source_ip
@@ -84,7 +104,11 @@ export function requestEventSearch(query, refreshToken) {
84104
return null;
85105
}
86106
if (data?.data?.search?.edges && Array.isArray(data.data.search.edges)) {
87-
const events = data.data.search.edges.map(({ node }) => node);
107+
const events = data.data.search.edges.map(({ node }) => ({
108+
...node,
109+
fields: getObjFromKeyValArray(node.fields),
110+
metadata: getObjFromKeyValArray(node.metadata),
111+
}));
88112
const cursor = data.data.search.pageInfo.hasPreviousPage && _.last(data.data.search.edges).cursor;
89113
dispatch(receiveEventList(query, data.data.search.totalCount, events, cursor));
90114
dispatch(loadingData("eventFetch", false));

0 commit comments

Comments
 (0)