aboutsummaryrefslogblamecommitdiffhomepage
path: root/client/src/app/+admin/follows/follows.component.ts
blob: b6f7715b38cf4d37303ffbe9f19136febc3bbff5 (plain) (tree)
1
2
3
4
5
6
7
8
9

                                                                           
                                                   
                                                      




                                           
                                                                
                                                          
 




















                                               










                                             










                                                 

                                         




              
import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core'
import { NavigationEnd, Router } from '@angular/router'
import { I18n } from '@ngx-translate/i18n-polyfill'
import { NgbTabset } from '@ng-bootstrap/ng-bootstrap'

@Component({
  templateUrl: './follows.component.html',
  styleUrls: [ './follows.component.scss' ]
})
export class FollowsComponent implements OnInit, AfterViewInit {
  @ViewChild('followsMenuTabs') followsMenuTabs: NgbTabset

  links: { path: string, title: string }[] = []

  constructor (
    private i18n: I18n,
    private router: Router
  ) {
    this.links = [
      {
        path: 'following-list',
        title: this.i18n('Following')
      },
      {
        path: 'following-add',
        title: this.i18n('Follow')
      },
      {
        path: 'followers-list',
        title: this.i18n('Followers')
      }
    ]
  }

  ngOnInit () {
    this.router.events.subscribe(
      event => {
        if (event instanceof NavigationEnd) {
          this.updateActiveTab()
        }
      }
    )
  }

  ngAfterViewInit () {
    // Avoid issue with change detector
    setTimeout(() => this.updateActiveTab())
  }

  private updateActiveTab () {
    const url = window.location.pathname

    for (let i = 0; i < this.links.length; i++) {
      const path = this.links[i].path

      if (url.endsWith(path) === true) {
        this.followsMenuTabs.select(path)
        return
      }
    }
  }
}