File tree 1 file changed +21
-6
lines changed
1 file changed +21
-6
lines changed Original file line number Diff line number Diff line change 27
27
let viewNamespaces = writable (false );
28
28
let viewSettings = false ;
29
29
30
+ function escapeHandler(e : KeyboardEvent ) {
31
+ if (
32
+ e .key === ' Escape' &&
33
+ [viewLinks , viewNamespaces , viewSettings ].some ((isOpen ) => isOpen )
34
+ ) {
35
+ closeMenu ();
36
+ }
37
+ }
38
+
39
+ beforeNavigate (() => {
40
+ closeMenu ();
41
+ });
42
+
30
43
$ : namespace = $page .params .namespace || $lastUsedNamespace ;
31
44
$ : namespaceExists = namespaceList .some (
32
45
(namespaceListItem ) => namespaceListItem .namespace === namespace ,
33
46
);
34
47
35
48
const onLinksClick = () => {
36
- viewSettings = false ;
37
- $viewNamespaces = false ;
38
49
viewLinks = ! viewLinks ;
50
+ $viewNamespaces = false ;
51
+ viewSettings = false ;
39
52
};
40
53
41
54
const onNamespaceClick = () => {
50
63
viewSettings = ! viewSettings ;
51
64
};
52
65
53
- beforeNavigate (() => {
66
+ function closeMenu() {
54
67
viewLinks = false ;
55
- viewSettings = false ;
56
68
$viewNamespaces = false ;
57
- });
69
+ viewSettings = false ;
70
+ }
58
71
59
72
$ : menuIsOpen = viewLinks || $viewNamespaces || viewSettings ;
60
73
66
79
};
67
80
</script >
68
81
82
+ <svelte:window on:keypress ={escapeHandler } />
83
+
69
84
{#if menuIsOpen }
70
85
<div
71
86
class =" group surface-primary fixed top-0 z-50 h-[calc(100%-64px)] w-full overflow-auto md:hidden"
74
89
out:slide ={{ duration : 200 , delay : 0 }}
75
90
>
76
91
<BottomNavLinks open ={viewLinks } {linkList } />
77
- <slot name ="nsPicker" open ={$viewNamespaces }>
92
+ <slot name ="nsPicker" open ={$viewNamespaces } { closeMenu } >
78
93
<BottomNavNamespaces open ={$viewNamespaces } {namespaceList } />
79
94
</slot >
80
95
<BottomNavSettings open ={viewSettings }>
You can’t perform that action at this time.
0 commit comments