mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-14 11:51:47 +00:00
fix(in-app-menu): implement auto close
This commit is contained in:
@ -132,6 +132,7 @@ export const Panel = (props: PanelProps) => {
|
|||||||
<Show when={local.open}>
|
<Show when={local.open}>
|
||||||
<ul
|
<ul
|
||||||
{...leftProps}
|
{...leftProps}
|
||||||
|
id={'sub-panel'}
|
||||||
ref={setPanel}
|
ref={setPanel}
|
||||||
class={panelStyle()}
|
class={panelStyle()}
|
||||||
style={{
|
style={{
|
||||||
|
|||||||
@ -244,6 +244,19 @@ export const TitleBar = (props: TitleBarProps) => {
|
|||||||
|
|
||||||
props.ipc.on('window-maximize', refetchMaximize);
|
props.ipc.on('window-maximize', refetchMaximize);
|
||||||
props.ipc.on('window-unmaximize', refetchMaximize);
|
props.ipc.on('window-unmaximize', refetchMaximize);
|
||||||
|
|
||||||
|
// close menu when the outside of the panel or sub-panel is clicked
|
||||||
|
document.body.addEventListener('click', (e) => {
|
||||||
|
if (
|
||||||
|
e.target instanceof HTMLElement &&
|
||||||
|
!(
|
||||||
|
e.target.closest('#main-panel') ||
|
||||||
|
e.target.closest('#sub-panel')
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
setOpenTarget(null);
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
createEffect(() => {
|
createEffect(() => {
|
||||||
@ -253,7 +266,7 @@ export const TitleBar = (props: TitleBarProps) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<nav class={titleStyle()} data-macos={props.isMacOS}>
|
<nav id={'main-panel'} class={titleStyle()} data-macos={props.isMacOS}>
|
||||||
<IconButton
|
<IconButton
|
||||||
onClick={() => setCollapsed(!collapsed())}
|
onClick={() => setCollapsed(!collapsed())}
|
||||||
style={{
|
style={{
|
||||||
|
|||||||
Reference in New Issue
Block a user