Skip to content

Commit 292c5c9

Browse files
authored
feat: expose replaceHistory option via navigable tab component (#887)
* feat: expose replaceHistory option via navigable tab component
1 parent 5ea1852 commit 292c5c9

File tree

3 files changed

+17
-18
lines changed

3 files changed

+17
-18
lines changed

projects/components/src/tabs/navigable/navigable-tab-group.component.ts

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,15 @@ import { NavigableTabComponent } from './navigable-tab.component';
1414
<nav mat-tab-nav-bar *htLetAsync="this.activeTab$ as activeTab" disableRipple>
1515
<ng-container *ngFor="let tab of this.tabs">
1616
<ng-container *ngIf="!tab.hidden">
17-
<ht-link [paramsOrUrl]="buildNavigationParam | htMemoize: tab">
18-
<div class="tab-button" *htIfFeature="tab.featureFlags | htFeature as featureState">
19-
<a mat-tab-link (click)="this.onTabClick(tab)" class="tab-link" [active]="activeTab === tab">
20-
<ng-container *ngTemplateOutlet="tab.content"></ng-container>
21-
<span *ngIf="featureState === '${FeatureState.Preview}'" class="soon-container">
22-
<span class="soon">SOON</span>
23-
</span>
24-
</a>
25-
<div class="ink-bar" [ngClass]="{ active: activeTab === tab }"></div>
26-
</div>
27-
</ht-link>
17+
<div class="tab-button" *htIfFeature="tab.featureFlags | htFeature as featureState">
18+
<ht-link mat-tab-link [paramsOrUrl]="buildNavParamsForTab | htMemoize: tab" class="tab-link">
19+
<ng-container *ngTemplateOutlet="tab.content"></ng-container>
20+
<span *ngIf="featureState === '${FeatureState.Preview}'" class="soon-container">
21+
<span class="soon">SOON</span>
22+
</span>
23+
</ht-link>
24+
<div class="ink-bar" [ngClass]="{ active: activeTab === tab }"></div>
25+
</div>
2826
</ng-container>
2927
</ng-container>
3028
</nav>
@@ -50,16 +48,13 @@ export class NavigableTabGroupComponent implements AfterContentInit {
5048
);
5149
}
5250

53-
public buildNavigationParam = (tab: NavigableTabComponent): NavigationParams => ({
51+
public buildNavParamsForTab = (tab: NavigableTabComponent): NavigationParams => ({
5452
navType: NavigationParamsType.InApp,
55-
path: [tab.path],
56-
relativeTo: this.activatedRoute
53+
path: tab.path,
54+
relativeTo: this.activatedRoute,
55+
replaceCurrentHistory: tab.replaceHistory
5756
});
5857

59-
public onTabClick(tab: NavigableTabComponent): void {
60-
this.navigationService.navigateWithinApp([tab.path], this.activatedRoute);
61-
}
62-
6358
private findActiveTab(): NavigableTabComponent | undefined {
6459
return this.tabs.find(tab => this.navigationService.isRelativePathActive([tab.path], this.activatedRoute));
6560
}

projects/components/src/tabs/navigable/navigable-tab.component.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ export class NavigableTabComponent extends ContentHolder {
1818
@Input()
1919
public hidden: boolean = false;
2020

21+
@Input()
22+
public replaceHistory?: boolean;
23+
2124
@Input()
2225
public features: string[] = [];
2326

projects/components/src/tabs/navigable/navigable-tab.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ export interface NavigableTab {
33
label: string;
44
hidden?: boolean;
55
features?: string[];
6+
replaceHistory?: boolean;
67
}

0 commit comments

Comments
 (0)