diff --git a/public/_locales/en/messages.json b/public/_locales/en/messages.json index 5ec3f3e3..da70cd4e 100644 --- a/public/_locales/en/messages.json +++ b/public/_locales/en/messages.json @@ -810,5 +810,17 @@ }, "LearnMore": { "message": "Learn More" + }, + "CopyDownvoteButtonInfo": { + "message": "Downvotes and creates a local copy for you to resubmit" + }, + "OpenCategoryWikiPage": { + "message": "Open this category's wiki page." + }, + "CopyAndDownvote": { + "message": "Copy and downvote" + }, + "ContinueVoting": { + "message": "Continue Voting" } } diff --git a/src/components/SkipNoticeComponent.tsx b/src/components/SkipNoticeComponent.tsx index fefa5040..3ed421c6 100644 --- a/src/components/SkipNoticeComponent.tsx +++ b/src/components/SkipNoticeComponent.tsx @@ -45,7 +45,7 @@ export interface SkipNoticeState { skipButtonCallback?: (index: number) => void; showSkipButton?: boolean; - downvoting?: boolean; + editing?: boolean; choosingCategory?: boolean; thanksForVotingText?: string; //null until the voting buttons should be hidden @@ -117,7 +117,7 @@ class SkipNoticeComponent extends React.Component this.unskip(index), showSkipButton: true, - downvoting: false, + editing: false, choosingCategory: false, thanksForVotingText: null, @@ -208,16 +208,15 @@ class SkipNoticeComponent extends React.Component this.adjustDownvotingState(true)}> - + onClick={() => this.prepAction(SkipNoticeAction.Downvote)}> {/* Copy and Downvote Button */} this.prepAction(SkipNoticeAction.CopyDownvote)}> + title={chrome.i18n.getMessage("CopyDownvoteButtonInfo")} + src={chrome.extension.getURL("icons/pencil.svg")} + onClick={() => this.adjustEditingState(true)}> @@ -226,7 +225,17 @@ class SkipNoticeComponent extends React.Component + + {/* Submitted string */} {this.state.thanksForVotingText} + + {/* Continue Voting Button */} + } @@ -246,16 +255,16 @@ class SkipNoticeComponent extends React.Component), - /* Downvote Options Row */ - (this.state.downvoting && - - + - {/* Normal downvote */} + {/* Copy Segment */} {/* Category vote */} @@ -269,6 +278,8 @@ class SkipNoticeComponent extends React.Component ), + + /* Category Chooser Row */ (this.state.choosingCategory && { if (this.segments.length > 1) { // Use the action selectors as a submit button @@ -445,6 +531,15 @@ class SkipNoticeComponent extends React.Component window.open(wikiLinkText), chrome.i18n.getMessage("OpenCategoryWikiPage")); + this.setState({ + editing: false, + choosingCategory: false, + actionState: SkipNoticeAction.None + }); } // Change the sponsor locally @@ -536,24 +637,6 @@ class SkipNoticeComponent extends React.Component unknown, ...messages: string[]): void { this.setState({ messages, diff --git a/src/config.ts b/src/config.ts index b1fc1070..e8b64bf2 100644 --- a/src/config.ts +++ b/src/config.ts @@ -43,7 +43,8 @@ interface SBConfig { showDonationLink: boolean, autoHideInfoButton: boolean, autoSkipOnMusicVideos: boolean, - highlightCategoryUpdate: boolean + highlightCategoryUpdate: boolean, + wikiPages: SBMap // What categories should be skipped categorySelections: CategorySelection[], @@ -120,14 +121,6 @@ class SBMap extends Map { this.update(); return result; } - - addArray(key: T, value: U) { - // Expand an array by value - let result = super.get(key).concat(value); - this.set(key, result); - this.update(); - return result; - } delete(key) { const result = super.delete(key); @@ -205,6 +198,19 @@ const Config: SBObject = { option: CategorySkipOption.AutoSkip }], + wikiPages: new SBMap("wikiLinks", [ + ["sponsor", "https://wiki.sponsor.ajay.app/w/Sponsor"], + ["selfpromo", "https://wiki.sponsor.ajay.app/w/Unpaid/Self_Promotion"], + ["interaction", "https://wiki.sponsor.ajay.app/w/Interaction_Reminder_(Subscribe)"], + ["intro", "https://wiki.sponsor.ajay.app/w/Intermission/Intro_Animation"], + ["outro", "https://wiki.sponsor.ajay.app/w/Endcards/Credits"], + ["preview", "https://wiki.sponsor.ajay.app/w/Preview/Recap"], + ["music_offtopic", "https://wiki.sponsor.ajay.app/w/Music:_Non-Music_Section"], + ["highlight_poi", "https://wiki.sponsor.ajay.app/w/Highlight"], + ["guidelines", "https://wiki.sponsor.ajay.app/w/Guidelines"], + ["mute", "https://wiki.sponsor.ajay.app/w/Mute_Segment"], + ]), + // Preview bar barTypes: { "preview-chooseACategory": {