diff options
author | Chocobozzz <me@florianbigard.com> | 2022-03-01 11:11:12 +0100 |
---|---|---|
committer | Chocobozzz <me@florianbigard.com> | 2022-03-01 13:37:40 +0100 |
commit | 19e7a90045345b531a489289dc8d4e032fa15d6c (patch) | |
tree | 45778fcedfa107062c553c170806946a1735d07a /client/src/app/+videos | |
parent | 7bde625050cb661f51db20992f9f3912a582fcee (diff) | |
download | PeerTube-19e7a90045345b531a489289dc8d4e032fa15d6c.tar.gz PeerTube-19e7a90045345b531a489289dc8d4e032fa15d6c.tar.zst PeerTube-19e7a90045345b531a489289dc8d4e032fa15d6c.zip |
Fix playlist element scrolling
Diffstat (limited to 'client/src/app/+videos')
3 files changed, 10 insertions, 7 deletions
diff --git a/client/src/app/+videos/+video-watch/shared/playlist/video-watch-playlist.component.scss b/client/src/app/+videos/+video-watch/shared/playlist/video-watch-playlist.component.scss index 75ed9d901..fc67ac65a 100644 --- a/client/src/app/+videos/+video-watch/shared/playlist/video-watch-playlist.component.scss +++ b/client/src/app/+videos/+video-watch/shared/playlist/video-watch-playlist.component.scss | |||
@@ -4,6 +4,7 @@ | |||
4 | @use '_miniature' as *; | 4 | @use '_miniature' as *; |
5 | 5 | ||
6 | .playlist { | 6 | .playlist { |
7 | position: relative; | ||
7 | min-width: 200px; | 8 | min-width: 200px; |
8 | max-width: 470px; | 9 | max-width: 470px; |
9 | height: 66vh; | 10 | height: 66vh; |
diff --git a/client/src/app/+videos/+video-watch/shared/playlist/video-watch-playlist.component.ts b/client/src/app/+videos/+video-watch/shared/playlist/video-watch-playlist.component.ts index b44238310..879d296a7 100644 --- a/client/src/app/+videos/+video-watch/shared/playlist/video-watch-playlist.component.ts +++ b/client/src/app/+videos/+video-watch/shared/playlist/video-watch-playlist.component.ts | |||
@@ -1,9 +1,10 @@ | |||
1 | import { Component, EventEmitter, Input, Output } from '@angular/core' | 1 | import { Component, EventEmitter, Input, Output } from '@angular/core' |
2 | import { Router } from '@angular/router' | 2 | import { Router } from '@angular/router' |
3 | import { AuthService, ComponentPagination, HooksService, Notifier, SessionStorageService, UserService } from '@app/core' | 3 | import { AuthService, ComponentPagination, HooksService, Notifier, SessionStorageService, UserService } from '@app/core' |
4 | import { isInViewport } from '@app/helpers' | ||
4 | import { VideoPlaylist, VideoPlaylistElement, VideoPlaylistService } from '@app/shared/shared-video-playlist' | 5 | import { VideoPlaylist, VideoPlaylistElement, VideoPlaylistService } from '@app/shared/shared-video-playlist' |
5 | import { peertubeSessionStorage } from '@root-helpers/peertube-web-storage' | ||
6 | import { getBoolOrDefault } from '@root-helpers/local-storage-utils' | 6 | import { getBoolOrDefault } from '@root-helpers/local-storage-utils' |
7 | import { peertubeSessionStorage } from '@root-helpers/peertube-web-storage' | ||
7 | import { VideoPlaylistPrivacy } from '@shared/models' | 8 | import { VideoPlaylistPrivacy } from '@shared/models' |
8 | 9 | ||
9 | @Component({ | 10 | @Component({ |
@@ -132,7 +133,12 @@ export class VideoWatchPlaylistComponent { | |||
132 | this.videoFound.emit(playlistElement.video.uuid) | 133 | this.videoFound.emit(playlistElement.video.uuid) |
133 | 134 | ||
134 | setTimeout(() => { | 135 | setTimeout(() => { |
135 | document.querySelector('.element-' + this.currentPlaylistPosition).scrollIntoView(false) | 136 | const element = document.querySelector<HTMLElement>('.element-' + this.currentPlaylistPosition) |
137 | const container = document.querySelector<HTMLElement>('.playlist') | ||
138 | |||
139 | if (isInViewport(element, container)) return | ||
140 | |||
141 | container.scrollTop = element.offsetTop | ||
136 | }) | 142 | }) |
137 | 143 | ||
138 | return | 144 | return |
diff --git a/client/src/app/+videos/+video-watch/video-watch.component.html b/client/src/app/+videos/+video-watch/video-watch.component.html index 830215225..4c15ae3d7 100644 --- a/client/src/app/+videos/+video-watch/video-watch.component.html +++ b/client/src/app/+videos/+video-watch/video-watch.component.html | |||
@@ -11,11 +11,7 @@ | |||
11 | <img class="placeholder-image" *ngIf="playerPlaceholderImgSrc" [src]="playerPlaceholderImgSrc" alt="Placeholder image" i18n-alt> | 11 | <img class="placeholder-image" *ngIf="playerPlaceholderImgSrc" [src]="playerPlaceholderImgSrc" alt="Placeholder image" i18n-alt> |
12 | </div> | 12 | </div> |
13 | 13 | ||
14 | <my-video-watch-playlist | 14 | <my-video-watch-playlist #videoWatchPlaylist [playlist]="playlist" (videoFound)="onPlaylistVideoFound($event)"></my-video-watch-playlist> |
15 | #videoWatchPlaylist | ||
16 | [playlist]="playlist" class="playlist" | ||
17 | (videoFound)="onPlaylistVideoFound($event)" | ||
18 | ></my-video-watch-playlist> | ||
19 | 15 | ||
20 | <my-plugin-placeholder pluginId="player-next"></my-plugin-placeholder> | 16 | <my-plugin-placeholder pluginId="player-next"></my-plugin-placeholder> |
21 | </div> | 17 | </div> |