mirror of
https://github.com/ajayyy/SponsorBlock.git
synced 2025-12-09 04:57:09 +03:00
Fix @typescript-eslint/no-unused-vars lint warnings
This commit is contained in:
@@ -21,6 +21,7 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
plugins: ["react", "@typescript-eslint"],
|
plugins: ["react", "@typescript-eslint"],
|
||||||
rules: {
|
rules: {
|
||||||
|
'@typescript-eslint/no-unused-vars': 'error',
|
||||||
// TODO: Remove warn rules when not needed anymore
|
// TODO: Remove warn rules when not needed anymore
|
||||||
"no-self-assign": "off",
|
"no-self-assign": "off",
|
||||||
"@typescript-eslint/no-empty-interface": "off",
|
"@typescript-eslint/no-empty-interface": "off",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import * as React from "react";
|
import * as React from "react";
|
||||||
import * as CompileConfig from "../../config.json";
|
import * as CompileConfig from "../../config.json";
|
||||||
import Config from "../config"
|
import Config from "../config"
|
||||||
import { Category, ContentContainer, SponsorHideType, SponsorTime, NoticeVisbilityMode, ActionType, SponsorSourceType, SegmentUUID } from "../types";
|
import { Category, ContentContainer, SponsorTime, NoticeVisbilityMode, ActionType, SponsorSourceType, SegmentUUID } from "../types";
|
||||||
import NoticeComponent from "./NoticeComponent";
|
import NoticeComponent from "./NoticeComponent";
|
||||||
import NoticeTextSelectionComponent from "./NoticeTextSectionComponent";
|
import NoticeTextSelectionComponent from "./NoticeTextSectionComponent";
|
||||||
import Utils from "../utils";
|
import Utils from "../utils";
|
||||||
@@ -72,7 +72,7 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
|||||||
|
|
||||||
amountOfPreviousNotices: number;
|
amountOfPreviousNotices: number;
|
||||||
showInSecondSlot: boolean;
|
showInSecondSlot: boolean;
|
||||||
|
|
||||||
idSuffix: string;
|
idSuffix: string;
|
||||||
|
|
||||||
noticeRef: React.MutableRefObject<NoticeComponent>;
|
noticeRef: React.MutableRefObject<NoticeComponent>;
|
||||||
@@ -105,7 +105,7 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
|||||||
if (this.segments.length > 1) {
|
if (this.segments.length > 1) {
|
||||||
this.segments.sort((a, b) => a.segment[0] - b.segment[0]);
|
this.segments.sort((a, b) => a.segment[0] - b.segment[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// This is the suffix added at the end of every id
|
// This is the suffix added at the end of every id
|
||||||
for (const segment of this.segments) {
|
for (const segment of this.segments) {
|
||||||
this.idSuffix += segment.UUID;
|
this.idSuffix += segment.UUID;
|
||||||
@@ -168,7 +168,7 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
|||||||
noticeStyle.transform = "scale(0.8) translate(10%, 10%)";
|
noticeStyle.transform = "scale(0.8) translate(10%, 10%)";
|
||||||
}
|
}
|
||||||
|
|
||||||
// If it started out as smaller, always keep the
|
// If it started out as smaller, always keep the
|
||||||
// skip button there
|
// skip button there
|
||||||
const showFirstSkipButton = this.props.smaller || this.segments[0].actionType === ActionType.Mute;
|
const showFirstSkipButton = this.props.smaller || this.segments[0].actionType === ActionType.Mute;
|
||||||
const firstColumn = showFirstSkipButton ? (
|
const firstColumn = showFirstSkipButton ? (
|
||||||
@@ -181,7 +181,7 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
|||||||
showInSecondSlot={this.showInSecondSlot}
|
showInSecondSlot={this.showInSecondSlot}
|
||||||
idSuffix={this.idSuffix}
|
idSuffix={this.idSuffix}
|
||||||
fadeIn={true}
|
fadeIn={true}
|
||||||
startFaded={Config.config.noticeVisibilityMode >= NoticeVisbilityMode.FadedForAll
|
startFaded={Config.config.noticeVisibilityMode >= NoticeVisbilityMode.FadedForAll
|
||||||
|| (Config.config.noticeVisibilityMode >= NoticeVisbilityMode.FadedForAutoSkip && this.autoSkip)}
|
|| (Config.config.noticeVisibilityMode >= NoticeVisbilityMode.FadedForAutoSkip && this.autoSkip)}
|
||||||
timed={true}
|
timed={true}
|
||||||
maxCountdownTime={this.state.maxCountdownTime}
|
maxCountdownTime={this.state.maxCountdownTime}
|
||||||
@@ -205,7 +205,7 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
|||||||
key={0}>
|
key={0}>
|
||||||
|
|
||||||
{/* Vote Button Container */}
|
{/* Vote Button Container */}
|
||||||
{!this.state.thanksForVotingText ?
|
{!this.state.thanksForVotingText ?
|
||||||
<td id={"sponsorTimesVoteButtonsContainer" + this.idSuffix}
|
<td id={"sponsorTimesVoteButtonsContainer" + this.idSuffix}
|
||||||
className="sponsorTimesVoteButtonsContainer">
|
className="sponsorTimesVoteButtonsContainer">
|
||||||
|
|
||||||
@@ -268,7 +268,7 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
|||||||
? this.getSkipButton(1) : null}
|
? this.getSkipButton(1) : null}
|
||||||
|
|
||||||
{/* Never show button */}
|
{/* Never show button */}
|
||||||
{!this.autoSkip || this.props.startReskip ? "" :
|
{!this.autoSkip || this.props.startReskip ? "" :
|
||||||
<td className="sponsorSkipNoticeRightSection"
|
<td className="sponsorSkipNoticeRightSection"
|
||||||
key={1}>
|
key={1}>
|
||||||
<button className="sponsorSkipObject sponsorSkipNoticeButton sponsorSkipNoticeRightButton"
|
<button className="sponsorSkipObject sponsorSkipNoticeButton sponsorSkipNoticeRightButton"
|
||||||
@@ -343,7 +343,7 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
|||||||
}
|
}
|
||||||
|
|
||||||
getSkipButton(buttonIndex: number): JSX.Element {
|
getSkipButton(buttonIndex: number): JSX.Element {
|
||||||
if (this.state.showSkipButton[buttonIndex] && (this.segments.length > 1
|
if (this.state.showSkipButton[buttonIndex] && (this.segments.length > 1
|
||||||
|| this.segments[0].actionType !== ActionType.Poi
|
|| this.segments[0].actionType !== ActionType.Poi
|
||||||
|| this.props.unskipTime)) {
|
|| this.props.unskipTime)) {
|
||||||
|
|
||||||
@@ -365,8 +365,8 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
|||||||
className="sponsorSkipObject sponsorSkipNoticeButton"
|
className="sponsorSkipObject sponsorSkipNoticeButton"
|
||||||
style={style}
|
style={style}
|
||||||
onClick={() => this.prepAction(buttonIndex === 1 ? SkipNoticeAction.Unskip1 : SkipNoticeAction.Unskip0)}>
|
onClick={() => this.prepAction(buttonIndex === 1 ? SkipNoticeAction.Unskip1 : SkipNoticeAction.Unskip0)}>
|
||||||
{this.getSkipButtonText(buttonIndex, forceSeek ? ActionType.Skip : null)
|
{this.getSkipButtonText(buttonIndex, forceSeek ? ActionType.Skip : null)
|
||||||
+ (!forceSeek && this.state.showKeybindHint
|
+ (!forceSeek && this.state.showKeybindHint
|
||||||
? " (" + keybindToString(Config.config.skipKeybind) + ")" : "")}
|
? " (" + keybindToString(Config.config.skipKeybind) + ")" : "")}
|
||||||
</button>
|
</button>
|
||||||
</span>
|
</span>
|
||||||
@@ -379,7 +379,7 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
|||||||
for (let i = 0; i < this.segments.length; i++) {
|
for (let i = 0; i < this.segments.length; i++) {
|
||||||
elements.push(
|
elements.push(
|
||||||
<button className="sponsorSkipObject sponsorSkipNoticeButton"
|
<button className="sponsorSkipObject sponsorSkipNoticeButton"
|
||||||
style={{opacity: this.getSubmissionChooserOpacity(i),
|
style={{opacity: this.getSubmissionChooserOpacity(i),
|
||||||
color: this.getSubmissionChooserColor(i)}}
|
color: this.getSubmissionChooserColor(i)}}
|
||||||
onClick={() => this.performAction(i)}
|
onClick={() => this.performAction(i)}
|
||||||
key={"submission" + i + this.segments[i].category + this.idSuffix}>
|
key={"submission" + i + this.segments[i].category + this.idSuffix}>
|
||||||
@@ -404,7 +404,7 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
|||||||
getSubmissionChooserColor(index: number): string {
|
getSubmissionChooserColor(index: number): string {
|
||||||
const isDownvote = this.state.actionState == SkipNoticeAction.Downvote;
|
const isDownvote = this.state.actionState == SkipNoticeAction.Downvote;
|
||||||
const isCopyDownvote = this.state.actionState == SkipNoticeAction.CopyDownvote;
|
const isCopyDownvote = this.state.actionState == SkipNoticeAction.CopyDownvote;
|
||||||
const shouldWarnUser = Config.config.isVip && (isDownvote || isCopyDownvote)
|
const shouldWarnUser = Config.config.isVip && (isDownvote || isCopyDownvote)
|
||||||
&& this.segments[index].locked === 1;
|
&& this.segments[index].locked === 1;
|
||||||
|
|
||||||
return shouldWarnUser ? this.lockedColor : this.unselectedColor;
|
return shouldWarnUser ? this.lockedColor : this.unselectedColor;
|
||||||
@@ -480,8 +480,8 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Performs the action from the current state
|
* Performs the action from the current state
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index
|
||||||
*/
|
*/
|
||||||
performAction(index: number, action?: SkipNoticeAction): void {
|
performAction(index: number, action?: SkipNoticeAction): void {
|
||||||
switch (action ?? this.state.actionState) {
|
switch (action ?? this.state.actionState) {
|
||||||
@@ -620,7 +620,7 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
|||||||
// See if the title should be changed
|
// See if the title should be changed
|
||||||
if (!this.autoSkip) {
|
if (!this.autoSkip) {
|
||||||
newState.noticeTitle = chrome.i18n.getMessage("noticeTitle");
|
newState.noticeTitle = chrome.i18n.getMessage("noticeTitle");
|
||||||
}
|
}
|
||||||
|
|
||||||
//reset countdown
|
//reset countdown
|
||||||
this.setState(newState, () => {
|
this.setState(newState, () => {
|
||||||
@@ -723,7 +723,7 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
|||||||
messages
|
messages
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
addVoteButtonInfo(message: string): void {
|
addVoteButtonInfo(message: string): void {
|
||||||
this.setState({
|
this.setState({
|
||||||
thanksForVotingText: message
|
thanksForVotingText: message
|
||||||
@@ -786,7 +786,7 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
|||||||
case ActionType.Mute: {
|
case ActionType.Mute: {
|
||||||
return chrome.i18n.getMessage("unmute");
|
return chrome.i18n.getMessage("unmute");
|
||||||
}
|
}
|
||||||
case ActionType.Skip:
|
case ActionType.Skip:
|
||||||
default: {
|
default: {
|
||||||
return chrome.i18n.getMessage("unskip");
|
return chrome.i18n.getMessage("unskip");
|
||||||
}
|
}
|
||||||
@@ -799,7 +799,7 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
|||||||
case ActionType.Mute: {
|
case ActionType.Mute: {
|
||||||
return chrome.i18n.getMessage("mute");
|
return chrome.i18n.getMessage("mute");
|
||||||
}
|
}
|
||||||
case ActionType.Skip:
|
case ActionType.Skip:
|
||||||
default: {
|
default: {
|
||||||
return chrome.i18n.getMessage("reskip");
|
return chrome.i18n.getMessage("reskip");
|
||||||
}
|
}
|
||||||
@@ -812,7 +812,7 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
|||||||
case ActionType.Mute: {
|
case ActionType.Mute: {
|
||||||
return chrome.i18n.getMessage("mute");
|
return chrome.i18n.getMessage("mute");
|
||||||
}
|
}
|
||||||
case ActionType.Skip:
|
case ActionType.Skip:
|
||||||
default: {
|
default: {
|
||||||
return chrome.i18n.getMessage("skip");
|
return chrome.i18n.getMessage("skip");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
import * as React from "react";
|
import * as React from "react";
|
||||||
import Config from "../config";
|
|
||||||
import { Category, SegmentUUID, SponsorTime } from "../types";
|
|
||||||
|
|
||||||
export interface TooltipProps {
|
export interface TooltipProps {
|
||||||
text: string;
|
text: string;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import * as CompileConfig from "../config.json";
|
import * as CompileConfig from "../config.json";
|
||||||
import * as invidiousList from "../ci/invidiouslist.json";
|
import * as invidiousList from "../ci/invidiouslist.json";
|
||||||
import { Category, CategorySelection, CategorySkipOption, NoticeVisbilityMode, PreviewBarOption, SponsorTime, StorageChangesObject, UnEncodedSegmentTimes as UnencodedSegmentTimes, Keybind, HashedValue, VideoID, SponsorHideType } from "./types";
|
import { Category, CategorySelection, CategorySkipOption, NoticeVisbilityMode, PreviewBarOption, SponsorTime, StorageChangesObject, Keybind, HashedValue, VideoID, SponsorHideType } from "./types";
|
||||||
import { keybindEquals } from "./utils/configUtils";
|
import { keybindEquals } from "./utils/configUtils";
|
||||||
|
|
||||||
interface SBConfig {
|
interface SBConfig {
|
||||||
@@ -300,7 +300,7 @@ function configProxy(): { sync: SBConfig, local: SBStorage } {
|
|||||||
for (const key in changes) {
|
for (const key in changes) {
|
||||||
Config.cachedSyncConfig[key] = changes[key].newValue;
|
Config.cachedSyncConfig[key] = changes[key].newValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const callback of Config.configSyncListeners) {
|
for (const callback of Config.configSyncListeners) {
|
||||||
callback(changes);
|
callback(changes);
|
||||||
}
|
}
|
||||||
@@ -310,7 +310,7 @@ function configProxy(): { sync: SBConfig, local: SBStorage } {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const syncHandler: ProxyHandler<SBConfig> = {
|
const syncHandler: ProxyHandler<SBConfig> = {
|
||||||
set<K extends keyof SBConfig>(obj: SBConfig, prop: K, value: SBConfig[K]) {
|
set<K extends keyof SBConfig>(obj: SBConfig, prop: K, value: SBConfig[K]) {
|
||||||
Config.cachedSyncConfig[prop] = value;
|
Config.cachedSyncConfig[prop] = value;
|
||||||
@@ -327,10 +327,10 @@ function configProxy(): { sync: SBConfig, local: SBStorage } {
|
|||||||
|
|
||||||
return obj[prop] || data;
|
return obj[prop] || data;
|
||||||
},
|
},
|
||||||
|
|
||||||
deleteProperty(obj: SBConfig, prop: keyof SBConfig) {
|
deleteProperty(obj: SBConfig, prop: keyof SBConfig) {
|
||||||
chrome.storage.sync.remove(<string> prop);
|
chrome.storage.sync.remove(<string> prop);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -352,10 +352,10 @@ function configProxy(): { sync: SBConfig, local: SBStorage } {
|
|||||||
|
|
||||||
return obj[prop] || data;
|
return obj[prop] || data;
|
||||||
},
|
},
|
||||||
|
|
||||||
deleteProperty(obj: SBStorage, prop: keyof SBStorage) {
|
deleteProperty(obj: SBStorage, prop: keyof SBStorage) {
|
||||||
chrome.storage.local.remove(<string> prop);
|
chrome.storage.local.remove(<string> prop);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -379,7 +379,7 @@ function forceLocalUpdate(prop: string): void {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async function fetchConfig(): Promise<void> {
|
async function fetchConfig(): Promise<void> {
|
||||||
await Promise.all([new Promise<void>((resolve) => {
|
await Promise.all([new Promise<void>((resolve) => {
|
||||||
chrome.storage.sync.get(null, function(items) {
|
chrome.storage.sync.get(null, function(items) {
|
||||||
Config.cachedSyncConfig = <SBConfig> <unknown> items;
|
Config.cachedSyncConfig = <SBConfig> <unknown> items;
|
||||||
@@ -387,7 +387,7 @@ async function fetchConfig(): Promise<void> {
|
|||||||
});
|
});
|
||||||
}), new Promise<void>((resolve) => {
|
}), new Promise<void>((resolve) => {
|
||||||
chrome.storage.local.get(null, function(items) {
|
chrome.storage.local.get(null, function(items) {
|
||||||
Config.cachedLocalStorage = <SBStorage> <unknown> items;
|
Config.cachedLocalStorage = <SBStorage> <unknown> items;
|
||||||
resolve();
|
resolve();
|
||||||
});
|
});
|
||||||
})]);
|
})]);
|
||||||
@@ -431,9 +431,9 @@ function migrateOldSyncFormats(config: SBConfig) {
|
|||||||
if (!config["autoSkipOnMusicVideosUpdate"]) {
|
if (!config["autoSkipOnMusicVideosUpdate"]) {
|
||||||
config["autoSkipOnMusicVideosUpdate"] = true;
|
config["autoSkipOnMusicVideosUpdate"] = true;
|
||||||
for (const selection of config.categorySelections) {
|
for (const selection of config.categorySelections) {
|
||||||
if (selection.name === "music_offtopic"
|
if (selection.name === "music_offtopic"
|
||||||
&& selection.option === CategorySkipOption.AutoSkip) {
|
&& selection.option === CategorySkipOption.AutoSkip) {
|
||||||
|
|
||||||
config.autoSkipOnMusicVideos = true;
|
config.autoSkipOnMusicVideos = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -318,9 +318,6 @@ async function videoIDChange(id) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get new video info
|
|
||||||
// getVideoInfo(); // Seems to have been replaced
|
|
||||||
|
|
||||||
// Update whitelist data when the video data is loaded
|
// Update whitelist data when the video data is loaded
|
||||||
whitelistCheck();
|
whitelistCheck();
|
||||||
|
|
||||||
@@ -898,12 +895,10 @@ function startSkipScheduleCheckingForStartSponsors() {
|
|||||||
// See if there are any starting sponsors
|
// See if there are any starting sponsors
|
||||||
let startingSegmentTime = getStartTimeFromUrl(document.URL) || -1;
|
let startingSegmentTime = getStartTimeFromUrl(document.URL) || -1;
|
||||||
let found = false;
|
let found = false;
|
||||||
let startingSegment: SponsorTime = null;
|
|
||||||
for (const time of sponsorTimes) {
|
for (const time of sponsorTimes) {
|
||||||
if (time.segment[0] <= video.currentTime && time.segment[0] > startingSegmentTime && time.segment[1] > video.currentTime
|
if (time.segment[0] <= video.currentTime && time.segment[0] > startingSegmentTime && time.segment[1] > video.currentTime
|
||||||
&& time.actionType !== ActionType.Poi) {
|
&& time.actionType !== ActionType.Poi) {
|
||||||
startingSegmentTime = time.segment[0];
|
startingSegmentTime = time.segment[0];
|
||||||
startingSegment = time;
|
|
||||||
found = true;
|
found = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -913,7 +908,6 @@ function startSkipScheduleCheckingForStartSponsors() {
|
|||||||
if (time.segment[0] <= video.currentTime && time.segment[0] > startingSegmentTime && time.segment[1] > video.currentTime
|
if (time.segment[0] <= video.currentTime && time.segment[0] > startingSegmentTime && time.segment[1] > video.currentTime
|
||||||
&& time.actionType !== ActionType.Poi) {
|
&& time.actionType !== ActionType.Poi) {
|
||||||
startingSegmentTime = time.segment[0];
|
startingSegmentTime = time.segment[0];
|
||||||
startingSegment = time;
|
|
||||||
found = true;
|
found = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -951,26 +945,6 @@ function startSkipScheduleCheckingForStartSponsors() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the video info for the current tab from YouTube
|
|
||||||
*
|
|
||||||
* TODO: Replace
|
|
||||||
*/
|
|
||||||
async function getVideoInfo(): Promise<void> {
|
|
||||||
const result = await utils.asyncRequestToCustomServer("GET", "https://www.youtube.com/get_video_info?video_id=" + sponsorVideoID + "&html5=1&c=TVHTML5&cver=7.20190319");
|
|
||||||
|
|
||||||
if (result.ok) {
|
|
||||||
const decodedData = decodeURIComponent(result.responseText).match(/player_response=([^&]*)/)[1];
|
|
||||||
if (!decodedData) {
|
|
||||||
console.error("[SB] Failed at getting video info from YouTube.");
|
|
||||||
console.error("[SB] Data returned from YouTube: " + result.responseText);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
videoInfo = JSON.parse(decodedData);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function getYouTubeVideoID(document: Document): string | boolean {
|
function getYouTubeVideoID(document: Document): string | boolean {
|
||||||
const url = document.URL;
|
const url = document.URL;
|
||||||
// clips should never skip, going from clip to full video has no indications.
|
// clips should never skip, going from clip to full video has no indications.
|
||||||
|
|||||||
@@ -2,10 +2,7 @@ import Config from "../config";
|
|||||||
import { SponsorTime } from "../types";
|
import { SponsorTime } from "../types";
|
||||||
import { getSkippingText } from "../utils/categoryUtils";
|
import { getSkippingText } from "../utils/categoryUtils";
|
||||||
import { keybindToString } from "../utils/configUtils";
|
import { keybindToString } from "../utils/configUtils";
|
||||||
|
|
||||||
import Utils from "../utils";
|
|
||||||
import { AnimationUtils } from "../utils/animationUtils";
|
import { AnimationUtils } from "../utils/animationUtils";
|
||||||
const utils = new Utils();
|
|
||||||
|
|
||||||
export interface SkipButtonControlBarProps {
|
export interface SkipButtonControlBarProps {
|
||||||
skip: (segment: SponsorTime) => void;
|
skip: (segment: SponsorTime) => void;
|
||||||
@@ -53,7 +50,7 @@ export class SkipButtonControlBar {
|
|||||||
this.skipIcon.id = "sbSkipIconControlBarImage";
|
this.skipIcon.id = "sbSkipIconControlBarImage";
|
||||||
|
|
||||||
this.textContainer = document.createElement("div");
|
this.textContainer = document.createElement("div");
|
||||||
|
|
||||||
this.container.appendChild(this.skipIcon);
|
this.container.appendChild(this.skipIcon);
|
||||||
this.container.appendChild(this.textContainer);
|
this.container.appendChild(this.textContainer);
|
||||||
this.container.addEventListener("click", () => this.toggleSkip());
|
this.container.addEventListener("click", () => this.toggleSkip());
|
||||||
@@ -73,7 +70,7 @@ export class SkipButtonControlBar {
|
|||||||
attachToPage(): void {
|
attachToPage(): void {
|
||||||
const mountingContainer = this.getMountingContainer();
|
const mountingContainer = this.getMountingContainer();
|
||||||
this.chapterText = document.querySelector(".ytp-chapter-container");
|
this.chapterText = document.querySelector(".ytp-chapter-container");
|
||||||
|
|
||||||
if (mountingContainer && !mountingContainer.contains(this.container)) {
|
if (mountingContainer && !mountingContainer.contains(this.container)) {
|
||||||
if (this.onMobileYouTube) {
|
if (this.onMobileYouTube) {
|
||||||
mountingContainer.appendChild(this.container);
|
mountingContainer.appendChild(this.container);
|
||||||
@@ -220,4 +217,3 @@ export class SkipButtonControlBar {
|
|||||||
this.container.style.left = this.left + "px";
|
this.container.style.left = this.left + "px";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user