feat(menu): add more detail in Menu (#1570)

This commit is contained in:
Su-Yong
2023-12-31 20:56:24 +09:00
committed by GitHub
parent aa899d247a
commit 4d3e2c09da
10 changed files with 104 additions and 7 deletions

View File

@ -11,6 +11,7 @@ export default createPlugin({
name: () => t('plugins.album-actions.name'),
description: () => t('plugins.album-actions.description'),
restartNeeded: false,
addedVersion: '3.2.0',
config: {
enabled: false,
},

View File

@ -52,6 +52,18 @@ export const createPanel = (
menu.appendChild(iconWrapper);
menu.append(item.label);
if (item.sublabel) {
menu.classList.add('badge');
const menuBadge = document.createElement('menu-item-badge');
menuBadge.append(item.sublabel);
menu.append(menuBadge);
}
if (item.toolTip) {
const menuTooltip = document.createElement('menu-item-tooltip');
menuTooltip.append(item.toolTip);
menu.append(menuTooltip);
}
menu.addEventListener('click', async () => {
await window.ipcRenderer.invoke('menu-event', item.commandId);
const menuItem = (await window.ipcRenderer.invoke(

View File

@ -97,6 +97,8 @@ menu-panel.position-by-bottom {
}
menu-item {
position: relative;
-webkit-app-region: none;
min-height: 32px;
height: 32px;
@ -109,6 +111,9 @@ menu-item {
border-radius: 4px;
cursor: pointer;
}
menu-item.badge {
grid-template-columns: 32px 1fr auto minmax(32px, auto);
}
menu-item:hover {
background-color: rgba(255, 255, 255, 0.1);
}
@ -128,6 +133,56 @@ menu-separator {
background-color: rgba(255, 255, 255, 0.2);
}
menu-item-badge {
display: flex;
justify-content: center;
align-items: center;
min-width: 16px;
height: 16px;
padding: 0 4px;
margin-left: 8px;
border-radius: 4px;
background-color: rgba(255, 255, 255, 0.2);
color: #f1f1f1;
font-size: 10px;
font-weight: 500;
line-height: 1;
}
menu-item-tooltip {
position: absolute;
left: 0;
top: calc(100% + 4px);
display: flex;
justify-content: center;
align-items: center;
min-width: 32px;
padding: 4px;
border-radius: 4px;
background-color: rgba(25, 25, 25, 0.8);
color: #f1f1f1;
font-size: 10px;
pointer-events: none;
z-index: 1000;
opacity: 0;
scale: 0.9;
transform-origin: 50% 0;
transition: all 0.225s ease-out;
}
menu-item:hover > menu-item-tooltip {
opacity: 1;
scale: 1.0;
}
/* classes */
.title-bar-icon {

View File

@ -38,6 +38,7 @@ export default createPlugin({
name: () => t('plugins.music-together.name'),
description: () => t('plugins.music-together.description'),
restartNeeded: false,
addedVersion: '3.2.0',
config: {
enabled: false
},