mirror of
https://github.com/ajayyy/SponsorBlock.git
synced 2025-12-13 23:17:05 +03:00
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
742eb7ef57 | ||
|
|
88526aa46e | ||
|
|
1909e66c87 | ||
|
|
5f8447ec6b | ||
|
|
e6db5b43ff | ||
|
|
6566c129c7 | ||
|
|
e7f4be2d57 |
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "__MSG_fullName__",
|
"name": "__MSG_fullName__",
|
||||||
"short_name": "SponsorBlock",
|
"short_name": "SponsorBlock",
|
||||||
"version": "5.5.5",
|
"version": "5.5.7",
|
||||||
"default_locale": "en",
|
"default_locale": "en",
|
||||||
"description": "__MSG_Description__",
|
"description": "__MSG_Description__",
|
||||||
"homepage_url": "https://sponsor.ajay.app",
|
"homepage_url": "https://sponsor.ajay.app",
|
||||||
|
|||||||
Submodule maze-utils updated: 08d3f65d35...8c0385deb5
Submodule public/_locales updated: 96f860dc1d...3f17e35086
@@ -780,6 +780,18 @@ input::-webkit-inner-spin-button {
|
|||||||
line-height: 1.5em;
|
line-height: 1.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Description on right layout */
|
||||||
|
#title > #categoryPillParent {
|
||||||
|
font-size: 2rem;
|
||||||
|
font-weight: bold;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
line-height: 2.8rem;
|
||||||
|
}
|
||||||
|
#title > #categoryPillParent > #categoryPill.cbPillOpen {
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
#categoryPillParent {
|
#categoryPillParent {
|
||||||
height: fit-content;
|
height: fit-content;
|
||||||
margin-top: auto;
|
margin-top: auto;
|
||||||
|
|||||||
@@ -23,12 +23,14 @@ export interface CategoryPillState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class CategoryPillComponent extends React.Component<CategoryPillProps, CategoryPillState> {
|
class CategoryPillComponent extends React.Component<CategoryPillProps, CategoryPillState> {
|
||||||
|
mainRef: React.MutableRefObject<HTMLSpanElement>;
|
||||||
tooltip?: Tooltip;
|
tooltip?: Tooltip;
|
||||||
|
|
||||||
constructor(props: CategoryPillProps) {
|
constructor(props: CategoryPillProps) {
|
||||||
super(props);
|
super(props);
|
||||||
|
|
||||||
|
this.mainRef = React.createRef();
|
||||||
|
|
||||||
this.state = {
|
this.state = {
|
||||||
segment: null,
|
segment: null,
|
||||||
show: false,
|
show: false,
|
||||||
@@ -43,13 +45,17 @@ class CategoryPillComponent extends React.Component<CategoryPillProps, CategoryP
|
|||||||
color: this.getTextColor(),
|
color: this.getTextColor(),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// To be able to remove the margin from the parent
|
||||||
|
this.mainRef?.current?.parentElement?.classList?.toggle("cbPillOpen", this.state.show);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<span style={style}
|
<span style={style}
|
||||||
className={"sponsorBlockCategoryPill" + (!this.props.showTextByDefault ? " sbPillNoText" : "")}
|
className={"sponsorBlockCategoryPill" + (!this.props.showTextByDefault ? " sbPillNoText" : "")}
|
||||||
aria-label={this.getTitleText()}
|
aria-label={this.getTitleText()}
|
||||||
onClick={(e) => this.toggleOpen(e)}
|
onClick={(e) => this.toggleOpen(e)}
|
||||||
onMouseEnter={() => this.openTooltip()}
|
onMouseEnter={() => this.openTooltip()}
|
||||||
onMouseLeave={() => this.closeTooltip()}>
|
onMouseLeave={() => this.closeTooltip()}
|
||||||
|
ref={this.mainRef}>
|
||||||
|
|
||||||
<span className="sponsorBlockCategoryPillTitleSection">
|
<span className="sponsorBlockCategoryPillTitleSection">
|
||||||
<img className="sponsorSkipLogo sponsorSkipObject"
|
<img className="sponsorSkipLogo sponsorSkipObject"
|
||||||
|
|||||||
@@ -2278,7 +2278,8 @@ async function sendSubmitMessage(): Promise<boolean> {
|
|||||||
if (!previewedSegment
|
if (!previewedSegment
|
||||||
&& !sponsorTimesSubmitting.every((segment) =>
|
&& !sponsorTimesSubmitting.every((segment) =>
|
||||||
[ActionType.Full, ActionType.Chapter, ActionType.Poi].includes(segment.actionType)
|
[ActionType.Full, ActionType.Chapter, ActionType.Poi].includes(segment.actionType)
|
||||||
|| segment.segment[1] >= getVideo()?.duration)) {
|
|| segment.segment[1] >= getVideo()?.duration
|
||||||
|
|| segment.segment[0] === 0)) {
|
||||||
alert(`${chrome.i18n.getMessage("previewSegmentRequired")} ${keybindToString(Config.config.previewKeybind)}`);
|
alert(`${chrome.i18n.getMessage("previewSegmentRequired")} ${keybindToString(Config.config.previewKeybind)}`);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,9 +43,15 @@ export class CategoryPill {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async attachToPageInternal(): Promise<void> {
|
private async attachToPageInternal(): Promise<void> {
|
||||||
const referenceNode =
|
let referenceNode =
|
||||||
await waitFor(() => getYouTubeTitleNode());
|
await waitFor(() => getYouTubeTitleNode());
|
||||||
|
|
||||||
|
// Experimental YouTube layout with description on right
|
||||||
|
const isOnDescriptionOnRightLayout = document.querySelector("#title #description");
|
||||||
|
if (isOnDescriptionOnRightLayout) {
|
||||||
|
referenceNode = referenceNode.parentElement;
|
||||||
|
}
|
||||||
|
|
||||||
if (referenceNode && !referenceNode.contains(this.container)) {
|
if (referenceNode && !referenceNode.contains(this.container)) {
|
||||||
if (!this.container) {
|
if (!this.container) {
|
||||||
this.container = document.createElement('span');
|
this.container = document.createElement('span');
|
||||||
@@ -91,7 +97,9 @@ export class CategoryPill {
|
|||||||
parent.appendChild(this.container);
|
parent.appendChild(this.container);
|
||||||
|
|
||||||
referenceNode.prepend(parent);
|
referenceNode.prepend(parent);
|
||||||
referenceNode.style.display = "flex";
|
if (!isOnDescriptionOnRightLayout) {
|
||||||
|
referenceNode.style.display = "flex";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user