From e65bc2e2453784decadc1716675dcce4450ea16c Mon Sep 17 00:00:00 2001 From: Johannes Millan Date: Wed, 25 Sep 2019 22:31:10 +0200 Subject: [PATCH] feat: hide side nav when opening route or changing project --- src/app/core-ui/layout/layout.service.ts | 38 +++++++++++------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/src/app/core-ui/layout/layout.service.ts b/src/app/core-ui/layout/layout.service.ts index 0d50ddb5e8..b4bd09ba8b 100644 --- a/src/app/core-ui/layout/layout.service.ts +++ b/src/app/core-ui/layout/layout.service.ts @@ -2,6 +2,7 @@ import {Injectable} from '@angular/core'; import { hideAddTaskBar, hideNotes, + hideSideNav, showAddTaskBar, toggleAddTaskBar, toggleShowNotes, @@ -10,10 +11,10 @@ import { import {merge, Observable, of} from 'rxjs'; import {select, Store} from '@ngrx/store'; import {LayoutState, selectIsShowAddTaskBar, selectIsShowNotes, selectIsShowSideNav} from './store/layout.reducer'; -import {filter, map, switchMap, tap, withLatestFrom} from 'rxjs/operators'; +import {filter, map, switchMap, withLatestFrom} from 'rxjs/operators'; import {BreakpointObserver} from '@angular/cdk/layout'; import {NoteService} from '../../features/note/note.service'; -import {ActivatedRoute, Router} from '@angular/router'; +import {ActivatedRoute, NavigationStart, Router} from '@angular/router'; import {ProjectService} from '../../features/project/project.service'; const BOTH__ALWAYS_VISIBLE = 1400; @@ -74,23 +75,20 @@ export class LayoutService { private _projectService: ProjectService, private _breakPointObserver: BreakpointObserver, ) { - // this.isNavOver$.pipe( - // filter(v => v), - // switchMap(() => merge( - // // this._router.events.pipe(filter((ev)=> ev.)), - // this._activatedRoute.params, - // this._projectService.onProjectChange$ - // ).pipe( - // withLatestFrom( - // this._isShowSideNav$, - // ), - // tap((v) => console.log(v)), - // filter(([url, isShowSideNav]) => isShowSideNav), - // )) - // ).subscribe(([url]) => { - // console.log(url); - // this.toggleSideNav(); - // }); + this.isNavOver$.pipe( + filter(v => v), + switchMap(() => merge( + this._router.events.pipe( + filter((ev) => ev instanceof NavigationStart) + ), + this._projectService.onProjectChange$ + ).pipe( + withLatestFrom(this._isShowSideNav$), + filter(([, isShowSideNav]) => isShowSideNav), + )) + ).subscribe(() => { + this.hideSideNav(); + }); } showAddTaskBar() { @@ -110,7 +108,7 @@ export class LayoutService { } hideSideNav() { - this._store$.dispatch(toggleSideNav()); + this._store$.dispatch(hideSideNav()); } public toggleNotes() {