| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| import {Component, EventEmitter, Input, Output} from '@angular/core'; |
| import {Observable} from 'rxjs'; |
| import {Router} from '@angular/router'; |
| |
| import {Email, User} from '../../../../pages/auth/models'; |
| import {AuthService, EmailService} from '../../../../pages/auth/services'; |
| import {routes} from '../../../../consts'; |
| |
| @Component({ |
| selector: 'app-header', |
| templateUrl: './header.component.html', |
| styleUrls: ['./header.component.scss'] |
| }) |
| export class HeaderComponent { |
| @Input() isMenuOpened: boolean; |
| @Output() isShowSidebar = new EventEmitter<boolean>(); |
| public user$: Observable<User>; |
| public emails$: Observable<Email[]>; |
| public routers: typeof routes = routes; |
| |
| constructor( |
| private userService: AuthService, |
| private emailService: EmailService, |
| private router: Router |
| ) { |
| this.user$ = this.userService.getUser(); |
| this.emails$ = this.emailService.loadEmails(); |
| } |
| |
| public openMenu(): void { |
| this.isMenuOpened = !this.isMenuOpened; |
| |
| this.isShowSidebar.emit(this.isMenuOpened); |
| } |
| |
| public signOut(): void { |
| this.userService.signOut(); |
| |
| this.router.navigate([this.routers.LOGIN]); |
| } |
| } |