mirror of
https://github.com/ajayyy/SponsorBlock.git
synced 2025-12-07 20:17:05 +03:00
Make highlight hover text work better on preview bar
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
@@ -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  )
|
||||||
|
*/
|
||||||
|
getMinimumSize(showLarger = false): number {
|
||||||
|
return this.videoDuration * (showLarger ? 0.006 : 0.003);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default PreviewBar;
|
export default PreviewBar;
|
||||||
|
|||||||
Reference in New Issue
Block a user