Skip to content

Commit dc123d9

Browse files
feat: context menu navigation handler added
1 parent a6f6fad commit dc123d9

File tree

3 files changed

+26
-22
lines changed

3 files changed

+26
-22
lines changed

projects/observability/src/shared/dashboard/widgets/charts/cartesian-widget/interactions/cartesian-explorer-context-menu/cartesian-explorer-context-menu.component.test.ts

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,6 @@ class TestComponent {
2222
}
2323

2424
describe('Sheet Overlay component', () => {
25-
const menu: ContextMenu = {
26-
name: 'Explore',
27-
icon: IconType.ArrowUpRight
28-
};
29-
3025
const selectedData: CartesianSelectedData<unknown> = {
3126
timeRange: TimeRangeService.toFixedTimeRange(
3227
new Date('2021-11-02T05:33:19.288Z'),
@@ -119,7 +114,17 @@ describe('Sheet Overlay component', () => {
119114

120115
spectator.component.selectionData = selectedData;
121116

122-
spectator.component.menuSelectHandler(menu);
117+
const menu: ContextMenu = {
118+
name: 'Explore',
119+
icon: IconType.ArrowUpRight,
120+
onClick: () => {
121+
spectator
122+
.inject(CartesainExplorerNavigationService)
123+
.navigateToExplorer(selectedData.timeRange.startTime, selectedData.timeRange.endTime);
124+
}
125+
};
126+
127+
menu.onClick();
123128

124129
expect(spectator.inject(CartesainExplorerNavigationService).navigateToExplorer).toHaveBeenCalled();
125130
});

projects/observability/src/shared/dashboard/widgets/charts/cartesian-widget/interactions/cartesian-explorer-context-menu/cartesian-explorer-context-menu.component.ts

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,7 @@ import { CartesainExplorerNavigationService } from '../cartesian-explorer-naviga
1313
<div class="context-menu-container">
1414
<div *ngFor="let menu of menus">
1515
<div class="context-menu">
16-
<ht-button
17-
[label]="menu.name"
18-
[icon]="menu.icon"
19-
[display]="display"
20-
(click)="menuSelectHandler(menu)"
21-
></ht-button>
16+
<ht-button [label]="menu.name" [icon]="menu.icon" [display]="display" (click)="menu.onClick()"></ht-button>
2217
</div>
2318
2419
<ht-divider></ht-divider>
@@ -30,11 +25,13 @@ export class CartesianExplorerContextMenuComponent<TData> {
3025
public menus?: ContextMenu[] = [
3126
{
3227
name: 'Set Time Range',
33-
icon: IconType.Alarm
28+
icon: IconType.Alarm,
29+
onClick: () => this.setTimeRangeHandler()
3430
},
3531
{
3632
name: 'Explore',
37-
icon: IconType.ArrowUpRight
33+
icon: IconType.ArrowUpRight,
34+
onClick: () => this.explorerNavigationHandler()
3835
}
3936
];
4037

@@ -49,19 +46,20 @@ export class CartesianExplorerContextMenuComponent<TData> {
4946
this.selectionData = data;
5047
}
5148

52-
public menuSelectHandler = (_menu: ContextMenu): void => {
53-
this.timeRangeService.setFixedRange(this.selectionData.timeRange.startTime, this.selectionData.timeRange.endTime);
49+
public readonly explorerNavigationHandler = () => {
50+
this.cartesainExplorerNavigationService.navigateToExplorer(
51+
this.selectionData.timeRange.startTime,
52+
this.selectionData.timeRange.endTime
53+
);
54+
};
5455

55-
if (_menu.name === 'Explore') {
56-
this.cartesainExplorerNavigationService.navigateToExplorer(
57-
this.selectionData.timeRange.startTime,
58-
this.selectionData.timeRange.endTime
59-
);
60-
}
56+
public readonly setTimeRangeHandler = () => {
57+
this.timeRangeService.setFixedRange(this.selectionData.timeRange.startTime, this.selectionData.timeRange.endTime);
6158
};
6259
}
6360

6461
export interface ContextMenu {
6562
name: string;
6663
icon: string;
64+
onClick(): void;
6765
}

projects/observability/src/shared/dashboard/widgets/charts/cartesian-widget/interactions/cartesian-explorer-navigation.service.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export class CartesainExplorerNavigationService {
1111
) {}
1212

1313
public navigateToExplorer(start: Date, end: Date): void {
14+
this.timeRangeService.setFixedRange(start, end);
1415
const params = this.timeRangeService.toQueryParams(start, end);
1516

1617
this.navigationService.navigate({

0 commit comments

Comments
 (0)