Skip to content

Commit 8a70117

Browse files
committed
Add getHeaderContextMenuCallback to ViewEventContextMenuBuilder
1 parent a26f926 commit 8a70117

File tree

1 file changed

+28
-2
lines changed

1 file changed

+28
-2
lines changed

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

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,10 @@ export class ViewEventContextMenuBuilder {
2727
private onPin: (event: CollectedEvent) => void,
2828
private onDelete: (event: CollectedEvent) => void,
2929
private onBuildRuleFromExchange: (exchange: HttpExchangeView) => void,
30-
private onPrepareToResendRequest?: (exchange: HttpExchangeView) => void
31-
) {}
30+
private onPrepareToResendRequest?: (exchange: HttpExchangeView) => void,
31+
private onHeaderColumnOptionChange?: (columnName: string, show: boolean) => void,
32+
) {
33+
}
3234

3335
private readonly BaseOptions = {
3436
Pin: {
@@ -142,4 +144,28 @@ export class ViewEventContextMenuBuilder {
142144
};
143145
}
144146

147+
getHeaderContextMenuCallback(enabledColumns: Map<string, boolean>) {
148+
let menuOptions: ContextMenuItem<void>[] = [];
149+
150+
enabledColumns.forEach((enabled, columnName) => {
151+
menuOptions.push({
152+
type: 'option',
153+
label: (!enabled ? "Show " : "Hide ") + columnName,
154+
callback: () => {
155+
this.onHeaderColumnOptionChange ? this.onHeaderColumnOptionChange(columnName, !enabled) : console.log('onHeaderColumnOptionChange callback not set');
156+
}
157+
});
158+
});
159+
160+
return (mouseEvent: React.MouseEvent) => {
161+
const sortedOptions = _.sortBy(menuOptions, (o: ContextMenuItem<void>) =>
162+
o.type === 'separator' || !(o.enabled ?? true)
163+
) as Array<ContextMenuItem<void>>;
164+
165+
this.uiStore.handleContextMenuEvent(
166+
mouseEvent,
167+
sortedOptions
168+
)
169+
};
170+
}
145171
}

0 commit comments

Comments
 (0)