Make highlight hover text work better on preview bar

This commit is contained in:
Ajay Ramachandran
2021-08-26 18:20:33 -04:00
parent 43a9ba0f9e
commit 48a49e4136
2 changed files with 12 additions and 3 deletions

View File

@@ -578,7 +578,7 @@ function setupVideoListeners() {
const currentPoiSegment = sponsorTimes.find((segment) => const currentPoiSegment = sponsorTimes.find((segment) =>
getCategoryActionType(segment.category) === CategoryActionType.POI && getCategoryActionType(segment.category) === CategoryActionType.POI &&
video.currentTime - segment.segment[0] > 0 && video.currentTime - segment.segment[0] > 0 &&
video.currentTime - segment.segment[0] < video.duration * 0.006); // Approximate size on preview bar video.currentTime - segment.segment[0] < previewBar.getMinimumSize(true));
if (currentPoiSegment && !skipNotices.some((notice) => notice.segments.some((s) => s.UUID === currentPoiSegment.UUID))) { if (currentPoiSegment && !skipNotices.some((notice) => notice.segments.some((s) => s.UUID === currentPoiSegment.UUID))) {
skipToTime({ skipToTime({
v: video, v: video,

View File

@@ -102,10 +102,12 @@ class PreviewBar {
let segment: PreviewBarSegment | null = null; let segment: PreviewBarSegment | null = null;
let currentSegmentLength = Infinity; let currentSegmentLength = Infinity;
for (const seg of this.segments) { for (const seg of this.segments) {//
const segmentLength = seg.segment[1] - seg.segment[0]; const segmentLength = seg.segment[1] - seg.segment[0];
const minSize = this.getMinimumSize(seg.showLarger);
const startTime = segmentLength !== 0 ? seg.segment[0] : Math.floor(seg.segment[0]); const startTime = segmentLength !== 0 ? seg.segment[0] : Math.floor(seg.segment[0]);
const endTime = segmentLength !== 0 ? seg.segment[1] : Math.ceil(seg.segment[1]); const endTime = segmentLength > minSize ? seg.segment[1] : Math.ceil(seg.segment[0] + minSize);
if (startTime <= timeInSeconds && endTime >= timeInSeconds) { if (startTime <= timeInSeconds && endTime >= timeInSeconds) {
if (segmentLength < currentSegmentLength) { if (segmentLength < currentSegmentLength) {
currentSegmentLength = segmentLength; currentSegmentLength = segmentLength;
@@ -218,6 +220,13 @@ class PreviewBar {
timeToPercentage(time: number): string { timeToPercentage(time: number): string {
return Math.min(100, time / this.videoDuration * 100) + '%'; return Math.min(100, time / this.videoDuration * 100) + '%';
} }
/*
* Approximate size on preview bar for smallest element (due to &nbsp)
*/
getMinimumSize(showLarger = false): number {
return this.videoDuration * (showLarger ? 0.006 : 0.003);
}
} }
export default PreviewBar; export default PreviewBar;