From 082f72b441bdd32d10897fa35609fb5de1bcc655 Mon Sep 17 00:00:00 2001 From: Sergey Andrievskiy Date: Sat, 22 Jun 2019 19:18:16 +0300 Subject: [PATCH] fix(header): adopt for smaller screens --- .../components/header/header.component.html | 8 +++-- .../components/header/header.component.scss | 29 ++++++++++++------- .../components/header/header.component.ts | 27 ++++++++++++++--- 3 files changed, 47 insertions(+), 17 deletions(-) diff --git a/src/app/@theme/components/header/header.component.html b/src/app/@theme/components/header/header.component.html index f64e0909..9f9ac28e 100644 --- a/src/app/@theme/components/header/header.component.html +++ b/src/app/@theme/components/header/header.component.html @@ -18,8 +18,12 @@ - - + + + diff --git a/src/app/@theme/components/header/header.component.scss b/src/app/@theme/components/header/header.component.scss index 299c7349..20d9e872 100644 --- a/src/app/@theme/components/header/header.component.scss +++ b/src/app/@theme/components/header/header.component.scss @@ -1,3 +1,5 @@ +@import '~bootstrap/scss/mixins/breakpoints'; +@import '~@nebular/theme/styles/global/breakpoints'; @import '../../styles/themes'; @include nb-install-component() { @@ -5,17 +7,6 @@ justify-content: space-between; width: 100%; - .left { - display: flex; - width: 100%; - order: 0; - flex-direction: row; - } - .right { - order: 1; - flex-direction: row-reverse; - } - .logo-container { display: flex; align-items: center; @@ -60,4 +51,20 @@ text-decoration: none; } } + + @include media-breakpoint-down(sm) { + .control-item { + display: none; + } + .user-action { + border: none; + padding: 0; + } + } + + @include media-breakpoint-down(is) { + nb-select { + display: none; + } + } } diff --git a/src/app/@theme/components/header/header.component.ts b/src/app/@theme/components/header/header.component.ts index 32e3e331..2c559545 100644 --- a/src/app/@theme/components/header/header.component.ts +++ b/src/app/@theme/components/header/header.component.ts @@ -1,16 +1,20 @@ -import { Component, OnInit } from '@angular/core'; -import { NbMenuService, NbSidebarService, NbThemeService } from '@nebular/theme'; +import { Component, OnDestroy, OnInit } from '@angular/core'; +import { NbMediaBreakpointsService, NbMenuService, NbSidebarService, NbThemeService } from '@nebular/theme'; import { UserData } from '../../../@core/data/users'; import { LayoutService } from '../../../@core/utils'; +import { map, takeUntil } from 'rxjs/operators'; +import { pipe, Subject } from 'rxjs'; @Component({ selector: 'ngx-header', styleUrls: ['./header.component.scss'], templateUrl: './header.component.html', }) -export class HeaderComponent implements OnInit { +export class HeaderComponent implements OnInit, OnDestroy { + private destroy$: Subject = new Subject(); + userPictureOnly: boolean = false; user: any; themes = [ @@ -40,12 +44,27 @@ export class HeaderComponent implements OnInit { private menuService: NbMenuService, private themeService: NbThemeService, private userService: UserData, - private layoutService: LayoutService) { + private layoutService: LayoutService, + private breakpointService: NbMediaBreakpointsService) { } ngOnInit() { this.userService.getUsers() + .pipe(takeUntil(this.destroy$)) .subscribe((users: any) => this.user = users.nick); + + const { xl } = this.breakpointService.getBreakpointsMap(); + this.themeService.onMediaQueryChange() + .pipe( + map(([, currentBreakpoint]) => currentBreakpoint.width < xl), + takeUntil(this.destroy$), + ) + .subscribe((isLessThanXl: boolean) => this.userPictureOnly = isLessThanXl); + } + + ngOnDestroy() { + this.destroy$.next(); + this.destroy$.complete(); } toggleTheme() {