diff --git a/src/components/SponsorTimeEditComponent.tsx b/src/components/SponsorTimeEditComponent.tsx index bed005b9..42f84f80 100644 --- a/src/components/SponsorTimeEditComponent.tsx +++ b/src/components/SponsorTimeEditComponent.tsx @@ -51,7 +51,8 @@ class SponsorTimeEditComponent extends React.Component + className="sponsorTimeEditButton" + onClick={this.previewTime.bind(this)}> {chrome.i18n.getMessage("preview")} @@ -63,6 +64,24 @@ class SponsorTimeEditComponent extends React.Component ({ onMobileYouTube, sponsorSubmissionNotice: submissionNotice, resetSponsorSubmissionNotice, - changeStartSponsorButton + changeStartSponsorButton, + previewTime }); //get messages from the background script and the popup @@ -861,6 +862,27 @@ function getStartTimes(sponsorTimes: number[][], minimum?: number, hideHiddenSpo return startTimes; } +/** + * Skip to exact time in a video and autoskips + * + * @param time + */ +function previewTime(time: number) { + video.currentTime = time; + + // Unpause the video if needed + if (video.paused){ + video.play(); + } + + // Start preview resetter + if (previewResetter !== null){ + clearTimeout(previewResetter); + } + + previewResetter = setTimeout(() => previewResetter = null, 4000); +} + //skip from the start time to the end time for a certain index sponsor time function skipToTime(v, index, sponsorTimes, openNotice) { if (!Config.config.disableAutoSkip || previewResetter !== null) { diff --git a/src/types.ts b/src/types.ts index 3ee9743a..7008f2e1 100644 --- a/src/types.ts +++ b/src/types.ts @@ -17,7 +17,8 @@ interface ContentContainer { onMobileYouTube: boolean, sponsorSubmissionNotice: SubmissionNotice, resetSponsorSubmissionNotice: () => void, - changeStartSponsorButton: (showStartSponsor: any, uploadButtonVisible: any) => Promise + changeStartSponsorButton: (showStartSponsor: any, uploadButtonVisible: any) => Promise, + previewTime: (time: number) => void } }