Skip to content

Commit 02d16c6

Browse files
committed
Add header context menu - ViewEventList
1 parent dbd98c9 commit 02d16c6

File tree

3 files changed

+22
-13
lines changed

3 files changed

+22
-13
lines changed

src/components/view/view-context-menu-builder.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export class ViewEventContextMenuBuilder {
2828
private onDelete: (event: CollectedEvent) => void,
2929
private onBuildRuleFromExchange: (exchange: HttpExchangeView) => void,
3030
private onPrepareToResendRequest?: (exchange: HttpExchangeView) => void,
31-
private onHeaderColumnOptionChange?: (columnName: string, show: boolean) => void,
31+
private onHeaderColumnOptionChange?: (visibleViewColumns: Map<string, boolean>, columnName: string, show: boolean) => void,
3232
) {
3333
}
3434

@@ -144,15 +144,15 @@ export class ViewEventContextMenuBuilder {
144144
};
145145
}
146146

147-
getHeaderContextMenuCallback(enabledColumns: Map<string, boolean>) {
147+
getHeaderToggleContextMenu(enabledColumns: Map<string, boolean>) {
148148
let menuOptions: ContextMenuItem<void>[] = [];
149149

150150
enabledColumns.forEach((enabled, columnName) => {
151151
menuOptions.push({
152152
type: 'option',
153153
label: (!enabled ? "Show " : "Hide ") + columnName,
154154
callback: () => {
155-
this.onHeaderColumnOptionChange ? this.onHeaderColumnOptionChange(columnName, !enabled) : console.log('onHeaderColumnOptionChange callback not set');
155+
this.onHeaderColumnOptionChange ? this.onHeaderColumnOptionChange(enabledColumns, columnName, !enabled) : console.log('onHeaderColumnOptionChange callback not set');
156156
}
157157
});
158158
});

src/components/view/view-event-list.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -854,9 +854,12 @@ export class ViewEventList extends React.Component<ViewEventListProps> {
854854
const { events, filteredEvents, isPaused } = this.props;
855855

856856
return <ListContainer role="table">
857-
<TableHeaderRow role="row">
857+
<TableHeaderRow
858+
role="row"
859+
onContextMenu={this.props.contextMenuBuilder.getHeaderToggleContextMenu(this.props.uiStore.visibleViewColumns)}
860+
>
858861
<MarkerHeader role="columnheader" aria-label="Category" />
859-
<Timestamp role="columnheader">Timestamp</Timestamp>}
862+
<Timestamp role="columnheader">Timestamp</Timestamp>
860863
<Method role="columnheader">Method</Method>
861864
<Status role="columnheader">Status</Status>
862865
<Source role="columnheader">Source</Source>

src/components/view/view-page.tsx

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -225,13 +225,13 @@ class ViewPage extends React.Component<ViewPageProps> {
225225

226226
return contentPerspective === 'client'
227227
? this.selectedEvent.downstream
228-
: contentPerspective === 'server'
229-
? (this.selectedEvent.upstream ?? this.selectedEvent.downstream)
230-
: contentPerspective === 'original'
231-
? this.selectedEvent.original
232-
: contentPerspective === 'transformed'
233-
? this.selectedEvent.transformed
234-
: unreachableCheck(contentPerspective)
228+
: contentPerspective === 'server'
229+
? (this.selectedEvent.upstream ?? this.selectedEvent.downstream)
230+
: contentPerspective === 'original'
231+
? this.selectedEvent.original
232+
: contentPerspective === 'transformed'
233+
? this.selectedEvent.transformed
234+
: unreachableCheck(contentPerspective)
235235
}
236236

237237
private readonly contextMenuBuilder = new ViewEventContextMenuBuilder(
@@ -240,7 +240,8 @@ class ViewPage extends React.Component<ViewPageProps> {
240240
this.onPin,
241241
this.onDelete,
242242
this.onBuildRuleFromExchange,
243-
this.onPrepareToResendRequest
243+
this.onPrepareToResendRequest,
244+
this.onHeaderColumnOptionChange
244245
);
245246

246247
componentDidMount() {
@@ -558,6 +559,11 @@ class ViewPage extends React.Component<ViewPageProps> {
558559
navigate(`/send`);
559560
}
560561

562+
@action.bound
563+
async onHeaderColumnOptionChange(visibleViewColumns: Map<string, boolean>, columnName: string, show: boolean) {
564+
visibleViewColumns.set(columnName, show);
565+
}
566+
561567
@action.bound
562568
onDelete(event: CollectedEvent) {
563569
const { filteredEvents } = this.filteredEventState;

0 commit comments

Comments
 (0)