diff --git a/assets/menu.svg b/assets/menu.svg
new file mode 100644
index 00000000..49e40477
--- /dev/null
+++ b/assets/menu.svg
@@ -0,0 +1,3 @@
+
diff --git a/assets/youtube-music.svg b/assets/youtube-music.svg
index ae721786..ea40b336 100644
--- a/assets/youtube-music.svg
+++ b/assets/youtube-music.svg
@@ -1,13 +1,6 @@
-
\ No newline at end of file
+
diff --git a/plugins/in-app-menu/front.ts b/plugins/in-app-menu/front.ts
index 84f02d8e..2be654a9 100644
--- a/plugins/in-app-menu/front.ts
+++ b/plugins/in-app-menu/front.ts
@@ -2,8 +2,9 @@ import { ipcRenderer, Menu } from 'electron';
import { createPanel } from './menu/panel';
-import logo from '../../assets/youtube-music.svg';
+import logo from '../../assets/menu.svg';
import { isEnabled } from '../../config/plugins';
+import config from '../../config';
function $(selector: string) {
return document.querySelector(selector);
@@ -12,11 +13,28 @@ function $(selector: string) {
const isMacOS = navigator.userAgent.includes('Macintosh');
export default () => {
+ let hideMenu = config.get('options.hideMenu');
const titleBar = document.createElement('title-bar');
const navBar = document.querySelector('#nav-bar-background');
if (isMacOS) titleBar.style.setProperty('--offset-left', '70px');
logo.classList.add('title-bar-icon');
+ const logoClick = () => {
+ hideMenu = !hideMenu;
+ let visibilityStyle: string;
+ if (hideMenu) {
+ visibilityStyle = 'hidden';
+ } else {
+ visibilityStyle = 'visible';
+ }
+ const menus = document.querySelectorAll('menu-button');
+ menus.forEach((menu) => {
+ menu.style.visibility = visibilityStyle;
+ });
+ };
+ logo.onclick = logoClick;
+
+ ipcRenderer.on('toggleMenu', logoClick);
if (!isMacOS) titleBar.appendChild(logo);
document.body.appendChild(titleBar);
@@ -47,6 +65,9 @@ export default () => {
menu.append(menuItem.label);
titleBar.appendChild(menu);
+ if (hideMenu) {
+ menu.style.visibility = 'hidden';
+ }
});
};
updateMenu();
diff --git a/plugins/in-app-menu/menu/panel.ts b/plugins/in-app-menu/menu/panel.ts
index feffb33b..1dd2ea16 100644
--- a/plugins/in-app-menu/menu/panel.ts
+++ b/plugins/in-app-menu/menu/panel.ts
@@ -29,7 +29,7 @@ export const createPanel = (
} else {
const nativeImageIcon = typeof item.icon === 'string' ? nativeImage.createFromPath(item.icon) : item.icon;
const iconURL = nativeImageIcon?.toDataURL();
-
+
if (iconURL) iconWrapper.style.background = `url(${iconURL})`;
}
};
@@ -37,7 +37,7 @@ export const createPanel = (
const radioGroups: [MenuItem, HTMLElement][] = [];
items.map((item) => {
if (item.type === 'separator') return panel.appendChild(document.createElement('menu-separator'));
-
+
const menu = document.createElement('menu-item');
const iconWrapper = document.createElement('menu-icon');
@@ -48,7 +48,7 @@ export const createPanel = (
menu.addEventListener('click', async () => {
await ipcRenderer.invoke('menu-event', item.commandId);
const menuItem = await ipcRenderer.invoke('get-menu-by-id', item.commandId) as MenuItem | null;
-
+
if (menuItem) {
updateIconState(iconWrapper, menuItem);
@@ -64,7 +64,7 @@ export const createPanel = (
}
}
});
-
+
if (item.type === 'radio') {
radioGroups.push([item, iconWrapper]);
}