mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-10 10:11:46 +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}>
|
||||
<ul
|
||||
{...leftProps}
|
||||
id={'sub-panel'}
|
||||
ref={setPanel}
|
||||
class={panelStyle()}
|
||||
style={{
|
||||
|
||||
@ -244,6 +244,19 @@ export const TitleBar = (props: TitleBarProps) => {
|
||||
|
||||
props.ipc.on('window-maximize', 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(() => {
|
||||
@ -253,7 +266,7 @@ export const TitleBar = (props: TitleBarProps) => {
|
||||
});
|
||||
|
||||
return (
|
||||
<nav class={titleStyle()} data-macos={props.isMacOS}>
|
||||
<nav id={'main-panel'} class={titleStyle()} data-macos={props.isMacOS}>
|
||||
<IconButton
|
||||
onClick={() => setCollapsed(!collapsed())}
|
||||
style={{
|
||||
|
||||
Reference in New Issue
Block a user