From 560955bb189a879e0095f9e3cb0e6d7a1d21fd4e Mon Sep 17 00:00:00 2001 From: Hugo SUBTIL <ext.sopra.husubtil@grandlyon.com> Date: Fri, 21 Jan 2022 16:59:50 +0100 Subject: [PATCH] fix: better handling of scroll reset inside the app in case of navigation --- src/app/app.component.ts | 20 ++++++++++++++++--- .../post-details/post-details.component.ts | 11 ---------- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 4767e95fd..e825951f8 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,4 +1,5 @@ -import { Component } from '@angular/core'; +import { Component, OnInit } from '@angular/core'; +import { NavigationEnd, Router } from '@angular/router'; import { ProfileService } from './profile/services/profile.service'; import { AuthService } from './services/auth.service'; import { RouterListenerService } from './services/routerListener.service'; @@ -10,7 +11,7 @@ import { WindowScrollService } from './shared/service/windowScroll.service'; templateUrl: './app.component.html', styleUrls: ['./app.component.scss'], }) -export class AppComponent { +export class AppComponent implements OnInit { title = 'pamn'; constructor( @@ -18,7 +19,8 @@ export class AppComponent { private authService: AuthService, private profilService: ProfileService, private windowScrollService: WindowScrollService, - private routerListener: RouterListenerService + private routerListener: RouterListenerService, + private router: Router ) { if (this.authService.isLoggedIn()) { this.profilService.getProfile(); @@ -30,6 +32,18 @@ export class AppComponent { this.routerListener.loadRouting(); } + ngOnInit(): void { + /** + * Reset scroll to top for article reading + */ + this.router.events.subscribe((evt) => { + if (!(evt instanceof NavigationEnd)) { + return; + } + document.getElementsByClassName('app-body')[0].scrollTo(0, 0); + }); + } + private setHeightApp(): void { const vh = window.innerHeight * 0.01; document.documentElement.style.setProperty('--vh', `${vh}px`); diff --git a/src/app/post/components/post-details/post-details.component.ts b/src/app/post/components/post-details/post-details.component.ts index 4f11e9fcd..f42eaa73b 100644 --- a/src/app/post/components/post-details/post-details.component.ts +++ b/src/app/post/components/post-details/post-details.component.ts @@ -21,7 +21,6 @@ export class PostDetailsComponent implements OnInit { ) {} ngOnInit(): void { - this.resetScroll(); if (history.state.data) { this.post = new Post(history.state.data); this.post.safeHtml = this.sanitizer.bypassSecurityTrustHtml(this.post.html); @@ -37,14 +36,4 @@ export class PostDetailsComponent implements OnInit { public backToPosts(): void { this.routerListener.goToPreviousUrl(); } - - /** - * Reset scroll to top for article reading - */ - private resetScroll(): void { - const classElement = document.getElementsByClassName('header-container'); - if (classElement.length > 0) { - classElement[0].scrollIntoView(); - } - } } -- GitLab