This commit is contained in:
Araxeus
2022-04-10 19:19:20 +03:00
parent c25a6f9d2a
commit 768ec7bda7
5 changed files with 106 additions and 28 deletions

View File

@ -3,6 +3,8 @@ const { ipcRenderer } = require("electron");
const { getSongMenu } = require("../../providers/dom-elements");
const { ElementFromFile, templatePath } = require("../utils");
function $(selector) { return document.querySelector(selector); }
let menu = null;
const pipButton = ElementFromFile(
templatePath(__dirname, "picture-in-picture.html")
@ -14,7 +16,7 @@ const observer = new MutationObserver(() => {
if (!menu) return;
}
if (menu.contains(pipButton)) return;
const menuUrl = document.querySelector(
const menuUrl = $(
'tp-yt-paper-listbox [tabindex="0"] #navigation-endpoint'
)?.href;
if (menuUrl && !menuUrl.includes("watch?")) return;
@ -30,7 +32,18 @@ function observeMenu(options) {
document.addEventListener(
"apiLoaded",
() => {
observer.observe(document.querySelector("ytmusic-popup-container"), {
const minButton = $(".player-minimize-button");
// remove native listeners
minButton.replaceWith(minButton.cloneNode(true));
$(".player-minimize-button").onclick = () => {
global.togglePictureInPicture();
setTimeout(() => $('#player').click());
};
// allows easily closing the menu by programmatically clicking outside of it
$("#expanding-menu").removeAttribute("no-cancel-on-outside-click");
// TODO: think about wether an additional button in songMenu is needed
observer.observe($("ytmusic-popup-container"), {
childList: true,
subtree: true,
});