Skip to content

Commit 5738d17

Browse files
committed
feat(tabs/bottomNav): addressing issues #4297
1 parent 22b98d9 commit 5738d17

File tree

5 files changed

+20
-18
lines changed

5 files changed

+20
-18
lines changed

projects/igniteui-angular/src/lib/tabbar/tabbar.component.spec.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -199,26 +199,28 @@ describe('TabBar', () => {
199199
tick();
200200
expect(location.path()).toBe('/');
201201

202+
const theTabs = bottomNav.contentTabs.toArray();
203+
202204
fixture.ngZone.run(() => { router.navigate(['/view3']); });
203205
tick();
204206
expect(location.path()).toBe('/view3');
205207
fixture.detectChanges();
206208
expect(bottomNav.selectedIndex).toBe(2);
207-
expect(bottomNav.contentTabs.toArray()[2].isSelected).toBe(true);
209+
expect(theTabs[2].isSelected).toBe(true);
208210

209211
fixture.ngZone.run(() => { router.navigate(['/view2']); });
210212
tick();
211213
expect(location.path()).toBe('/view2');
212214
fixture.detectChanges();
213215
expect(bottomNav.selectedIndex).toBe(1);
214-
expect(bottomNav.contentTabs.toArray()[1].isSelected).toBe(true);
216+
expect(theTabs[1].isSelected).toBe(true);
215217

216218
fixture.ngZone.run(() => { router.navigate(['/view1']); });
217219
tick();
218220
expect(location.path()).toBe('/view1');
219221
fixture.detectChanges();
220222
expect(bottomNav.selectedIndex).toBe(0);
221-
expect(bottomNav.contentTabs.toArray()[0].isSelected).toBe(true);
223+
expect(theTabs[0].isSelected).toBe(true);
222224
}));
223225
});
224226

projects/igniteui-angular/src/lib/tabbar/tabbar.component.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ export class IgxBottomNavComponent implements AfterViewInit {
168168
*@hidden
169169
*/
170170
public get hasContentTabs(): boolean {
171-
return (this.contentTabs && this.contentTabs.toArray().length > 0);
171+
return (this.contentTabs && this.contentTabs.length > 0);
172172
}
173173

174174
/**
@@ -583,13 +583,9 @@ export class IgxTabComponent {
583583
* @memberof IgxTabComponent
584584
*/
585585
public get index(): number {
586-
if (this._tabBar && this._tabBar.hasContentTabs) {
587-
return this._tabBar.contentTabs.toArray().indexOf(this);
588-
}
589-
if (this._tabBar && this._tabBar.tabs) {
586+
if (this._tabBar.tabs) {
590587
return this._tabBar.tabs.toArray().indexOf(this);
591588
}
592-
return 0;
593589
}
594590

595591
/**@hidden*/

projects/igniteui-angular/src/lib/tabs/tab-item.component.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -266,9 +266,6 @@ export class IgxTabItemComponent implements IgxTabItemBase {
266266
* @hidden
267267
*/
268268
public get context(): any {
269-
if (this.relatedGroup) {
270-
return this.relatedGroup;
271-
}
272-
return this;
269+
return this.relatedGroup ? this.relatedGroup : this;
273270
}
274271
}

projects/igniteui-angular/src/lib/tabs/tabs.component.spec.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -450,26 +450,28 @@ describe('IgxTabs', () => {
450450
tick();
451451
expect(location.path()).toBe('/');
452452

453+
const theTabs = tabsComp.contentTabs.toArray();
454+
453455
fixture.ngZone.run(() => { router.navigate(['/view3']); });
454456
tick();
455457
expect(location.path()).toBe('/view3');
456458
fixture.detectChanges();
457459
expect(tabsComp.selectedIndex).toBe(2);
458-
expect(tabsComp.contentTabs.toArray()[2].isSelected).toBe(true);
460+
expect(theTabs[2].isSelected).toBe(true);
459461

460462
fixture.ngZone.run(() => { router.navigate(['/view2']); });
461463
tick();
462464
expect(location.path()).toBe('/view2');
463465
fixture.detectChanges();
464466
expect(tabsComp.selectedIndex).toBe(1);
465-
expect(tabsComp.contentTabs.toArray()[1].isSelected).toBe(true);
467+
expect(theTabs[1].isSelected).toBe(true);
466468

467469
fixture.ngZone.run(() => { router.navigate(['/view1']); });
468470
tick();
469471
expect(location.path()).toBe('/view1');
470472
fixture.detectChanges();
471473
expect(tabsComp.selectedIndex).toBe(0);
472-
expect(tabsComp.contentTabs.toArray()[0].isSelected).toBe(true);
474+
expect(theTabs[0].isSelected).toBe(true);
473475
}));
474476
});
475477

projects/igniteui-angular/src/lib/tabs/tabs.component.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ export class IgxTabsComponent implements IgxTabsBase, AfterViewInit, OnDestroy {
188188
*@hidden
189189
*/
190190
public get hasContentTabs(): boolean {
191-
return (this.contentTabs && this.contentTabs.toArray().length > 0);
191+
return (this.contentTabs && this.contentTabs.length > 0);
192192
}
193193

194194
/**
@@ -207,7 +207,7 @@ export class IgxTabsComponent implements IgxTabsBase, AfterViewInit, OnDestroy {
207207
public offset = 0;
208208

209209
private _groupChanges$: Subscription;
210-
private _selectedIndex = -1;
210+
private _selectedIndex = 0;
211211

212212
/**
213213
* @hidden
@@ -311,6 +311,11 @@ export class IgxTabsComponent implements IgxTabsBase, AfterViewInit, OnDestroy {
311311
* @hidden
312312
*/
313313
public ngAfterViewInit() {
314+
if (this.hasContentTabs) {
315+
// in content tabs mode there there is not first tab selected by default
316+
this._selectedIndex = -1;
317+
}
318+
314319
requestAnimationFrame(() => {
315320
this.setSelectedGroup();
316321
});

0 commit comments

Comments
 (0)