]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - client/src/app/+admin/follows/follows.component.ts
Migrate to bootstrap 4 and ng-bootstrap
[github/Chocobozzz/PeerTube.git] / client / src / app / +admin / follows / follows.component.ts
1 import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core'
2 import { NavigationEnd, Router } from '@angular/router'
3 import { I18n } from '@ngx-translate/i18n-polyfill'
4 import { NgbTabset } from '@ng-bootstrap/ng-bootstrap'
5
6 @Component({
7 templateUrl: './follows.component.html',
8 styleUrls: [ './follows.component.scss' ]
9 })
10 export class FollowsComponent implements OnInit, AfterViewInit {
11 @ViewChild('followsMenuTabs') followsMenuTabs: NgbTabset
12
13 links: { path: string, title: string }[] = []
14
15 constructor (
16 private i18n: I18n,
17 private router: Router
18 ) {
19 this.links = [
20 {
21 path: 'following-list',
22 title: this.i18n('Following')
23 },
24 {
25 path: 'following-add',
26 title: this.i18n('Follow')
27 },
28 {
29 path: 'followers-list',
30 title: this.i18n('Followers')
31 }
32 ]
33 }
34
35 ngOnInit () {
36 this.router.events.subscribe(
37 event => {
38 if (event instanceof NavigationEnd) {
39 this.updateActiveTab()
40 }
41 }
42 )
43 }
44
45 ngAfterViewInit () {
46 // Avoid issue with change detector
47 setTimeout(() => this.updateActiveTab())
48 }
49
50 private updateActiveTab () {
51 const url = window.location.pathname
52
53 for (let i = 0; i < this.links.length; i++) {
54 const path = this.links[i].path
55
56 if (url.endsWith(path) === true) {
57 this.followsMenuTabs.select(path)
58 return
59 }
60 }
61 }
62 }