aboutsummaryrefslogtreecommitdiffhomepage
path: root/client
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2020-06-16 09:56:24 +0200
committerChocobozzz <me@florianbigard.com>2020-06-16 11:26:46 +0200
commit64e0f8cf12c804a7a2fa582fd954f686cea9a45b (patch)
treee76dd7980665c1ac814ed4acd4fe9ce3a3e11974 /client
parentc7763eddd14ee6a4a448d5187f46f79b22047d20 (diff)
downloadPeerTube-64e0f8cf12c804a7a2fa582fd954f686cea9a45b.tar.gz
PeerTube-64e0f8cf12c804a7a2fa582fd954f686cea9a45b.tar.zst
PeerTube-64e0f8cf12c804a7a2fa582fd954f686cea9a45b.zip
Fix scrolling with hash in url
Diffstat (limited to 'client')
-rw-r--r--client/src/app/+about/about-instance/about-instance.component.ts8
-rw-r--r--client/src/app/+about/about-peertube/about-peertube.component.ts8
-rw-r--r--client/src/app/+my-account/my-account-settings/my-account-settings.component.ts8
-rw-r--r--client/src/app/app.component.ts1
4 files changed, 22 insertions, 3 deletions
diff --git a/client/src/app/+about/about-instance/about-instance.component.ts b/client/src/app/+about/about-instance/about-instance.component.ts
index e1809d7b7..15841be74 100644
--- a/client/src/app/+about/about-instance/about-instance.component.ts
+++ b/client/src/app/+about/about-instance/about-instance.component.ts
@@ -35,6 +35,8 @@ export class AboutInstanceComponent implements OnInit, AfterViewChecked {
35 35
36 serverConfig: ServerConfig 36 serverConfig: ServerConfig
37 37
38 private lastScrollHash: string
39
38 constructor ( 40 constructor (
39 private viewportScroller: ViewportScroller, 41 private viewportScroller: ViewportScroller,
40 private route: ActivatedRoute, 42 private route: ActivatedRoute,
@@ -74,7 +76,11 @@ export class AboutInstanceComponent implements OnInit, AfterViewChecked {
74 } 76 }
75 77
76 ngAfterViewChecked () { 78 ngAfterViewChecked () {
77 if (window.location.hash) this.viewportScroller.scrollToAnchor(window.location.hash.replace('#', '')) 79 if (window.location.hash && window.location.hash !== this.lastScrollHash) {
80 this.viewportScroller.scrollToAnchor(window.location.hash.replace('#', ''))
81
82 this.lastScrollHash = window.location.hash
83 }
78 } 84 }
79 85
80 openContactModal () { 86 openContactModal () {
diff --git a/client/src/app/+about/about-peertube/about-peertube.component.ts b/client/src/app/+about/about-peertube/about-peertube.component.ts
index 98c5f93c3..b175a41bc 100644
--- a/client/src/app/+about/about-peertube/about-peertube.component.ts
+++ b/client/src/app/+about/about-peertube/about-peertube.component.ts
@@ -8,11 +8,17 @@ import { ViewportScroller } from '@angular/common'
8}) 8})
9 9
10export class AboutPeertubeComponent implements AfterViewChecked { 10export class AboutPeertubeComponent implements AfterViewChecked {
11 private lastScrollHash: string
12
11 constructor ( 13 constructor (
12 private viewportScroller: ViewportScroller 14 private viewportScroller: ViewportScroller
13 ) {} 15 ) {}
14 16
15 ngAfterViewChecked () { 17 ngAfterViewChecked () {
16 if (window.location.hash) this.viewportScroller.scrollToAnchor(window.location.hash.replace('#', '')) 18 if (window.location.hash && window.location.hash !== this.lastScrollHash) {
19 this.viewportScroller.scrollToAnchor(window.location.hash.replace('#', ''))
20
21 this.lastScrollHash = window.location.hash
22 }
17 } 23 }
18} 24}
diff --git a/client/src/app/+my-account/my-account-settings/my-account-settings.component.ts b/client/src/app/+my-account/my-account-settings/my-account-settings.component.ts
index 5f2db9854..f73f3aa1e 100644
--- a/client/src/app/+my-account/my-account-settings/my-account-settings.component.ts
+++ b/client/src/app/+my-account/my-account-settings/my-account-settings.component.ts
@@ -23,6 +23,8 @@ export class MyAccountSettingsComponent implements OnInit, AfterViewChecked {
23 userVideoQuotaUsedDaily = 0 23 userVideoQuotaUsedDaily = 0
24 userVideoQuotaDailyPercentage = 15 24 userVideoQuotaDailyPercentage = 15
25 25
26 private lastScrollHash: string
27
26 constructor ( 28 constructor (
27 private viewportScroller: ViewportScroller, 29 private viewportScroller: ViewportScroller,
28 private userService: UserService, 30 private userService: UserService,
@@ -64,7 +66,11 @@ export class MyAccountSettingsComponent implements OnInit, AfterViewChecked {
64 } 66 }
65 67
66 ngAfterViewChecked () { 68 ngAfterViewChecked () {
67 if (window.location.hash) this.viewportScroller.scrollToAnchor(window.location.hash.replace('#', '')) 69 if (window.location.hash && window.location.hash !== this.lastScrollHash) {
70 this.viewportScroller.scrollToAnchor(window.location.hash.replace('#', ''))
71
72 this.lastScrollHash = window.location.hash
73 }
68 } 74 }
69 75
70 onAvatarChange (formData: FormData) { 76 onAvatarChange (formData: FormData) {
diff --git a/client/src/app/app.component.ts b/client/src/app/app.component.ts
index c77dc97de..5541f5558 100644
--- a/client/src/app/app.component.ts
+++ b/client/src/app/app.component.ts
@@ -123,6 +123,7 @@ export class AppComponent implements OnInit, AfterViewInit {
123 const scrollEvent = eventsObs.pipe(filter((e: Event): e is Scroll => e instanceof Scroll)) 123 const scrollEvent = eventsObs.pipe(filter((e: Event): e is Scroll => e instanceof Scroll))
124 124
125 scrollEvent.subscribe(e => { 125 scrollEvent.subscribe(e => {
126 console.log(e)
126 if (e.position) { 127 if (e.position) {
127 return this.viewportScroller.scrollToPosition(e.position) 128 return this.viewportScroller.scrollToPosition(e.position)
128 } 129 }