From b98300596c45191cff096dfc0a0327e7713822bd Mon Sep 17 00:00:00 2001 From: Ajay Date: Wed, 27 Nov 2024 13:31:39 -0500 Subject: Fix inaccurate timer on upcoming notice --- src/components/NoticeComponent.tsx | 2 +- src/components/SkipNoticeComponent.tsx | 3 ++- src/content.ts | 13 ++++++------- src/render/UpcomingNotice.tsx | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/components/NoticeComponent.tsx b/src/components/NoticeComponent.tsx index a6dcb768..db0bce77 100644 --- a/src/components/NoticeComponent.tsx +++ b/src/components/NoticeComponent.tsx @@ -245,7 +245,7 @@ class NoticeComponent extends React.Component { id={"skipNoticeTimerText" + this.idSuffix} key="skipNoticeTimerText" className={this.state.countdownMode !== CountdownMode.Timer ? "sbhidden" : ""} > - {chrome.i18n.getMessage("NoticeTimeAfterSkip").replace("{seconds}", this.state.countdownTime.toString())} + {chrome.i18n.getMessage("NoticeTimeAfterSkip").replace("{seconds}", Math.ceil(this.state.countdownTime).toString())} ),( void; @@ -124,7 +125,7 @@ class SkipNoticeComponent extends React.Component Config.config.skipNoticeDuration; + const maxCountdownTime = props.maxCountdownTime ? () => props.maxCountdownTime : (isMuteSegment ? this.getFullDurationCountdown(0) : () => Config.config.skipNoticeDuration); const defaultSkipButtonState = this.props.startReskip ? SkipButtonState.Redo : SkipButtonState.Undo; const skipButtonStates = [defaultSkipButtonState, isMuteSegment ? SkipButtonState.Start : defaultSkipButtonState]; diff --git a/src/content.ts b/src/content.ts index 6b7982f1..9fcf3381 100644 --- a/src/content.ts +++ b/src/content.ts @@ -806,16 +806,15 @@ async function startSponsorSchedule(includeIntersectingSegments = false, current // Show the notice only if the segment hasn't already started if (Config.config.showUpcomingNotice && getCurrentTime() < skippingSegments[0].segment[0] && !sponsorTimesSubmitting?.some((segment) => segment.segment === currentSkip.segment) - && [ActionType.Skip, ActionType.Mute].includes(skippingSegments[0].actionType)) { + && [ActionType.Skip, ActionType.Mute].includes(skippingSegments[0].actionType) + && !getVideo()?.paused) { const maxPopupTime = 3000; const timeUntilPopup = Math.max(0, offsetDelayTime - maxPopupTime); - const popupTime = Math.min(maxPopupTime, timeUntilPopup); + const popupTime = offsetDelayTime - timeUntilPopup; const autoSkip = shouldAutoSkip(skippingSegments[0]); - if (timeUntilPopup > 0) { - if (currentUpcomingSchedule) clearTimeout(currentUpcomingSchedule); - currentUpcomingSchedule = setTimeout(createUpcomingNotice, timeUntilPopup, skippingSegments, popupTime, autoSkip); - } + if (currentUpcomingSchedule) clearTimeout(currentUpcomingSchedule); + currentUpcomingSchedule = setTimeout(createUpcomingNotice, timeUntilPopup, skippingSegments, popupTime, autoSkip); } } } @@ -1823,7 +1822,7 @@ function createUpcomingNotice(skippingSegments: SponsorTime[], timeLeft: number, } upcomingNotice?.close(); - upcomingNotice = new UpcomingNotice(skippingSegments, skipNoticeContentContainer, timeLeft, autoSkip); + upcomingNotice = new UpcomingNotice(skippingSegments, skipNoticeContentContainer, timeLeft / 1000, autoSkip); } function unskipSponsorTime(segment: SponsorTime, unskipTime: number = null, forceSeek = false) { diff --git a/src/render/UpcomingNotice.tsx b/src/render/UpcomingNotice.tsx index 3b8e4f90..b3380ce1 100644 --- a/src/render/UpcomingNotice.tsx +++ b/src/render/UpcomingNotice.tsx @@ -41,7 +41,7 @@ class UpcomingNotice { closeListener={() => this.close()} smaller={true} fadeIn={true} - unskipTime={timeLeft} /> + maxCountdownTime={timeLeft} /> ); } -- cgit v1.2.3