17
17
18
18
<button
19
19
@click =" toggleMenu"
20
- :class ="
21
- tw`flex lg:hidden w-full items-center space-x-2 cursor-pointer select-none text(gray-500 dark:gray-300 hover:dark:white hover:green-700) p-4 rounded bg-gray-100 dark:bg-gray-700 hover:(bg(green-100 dark:gray-600 opacity-50 dark:opacity-50))`
22
- "
20
+ :class =" [
21
+ tw`flex lg:hidden w-full items-center space-x-2 cursor-pointer select-none text(gray-500 dark:gray-300 hover:dark:white hover:green-700) p-4 rounded bg-gray-100 dark:bg-gray-700 hover:(bg(green-100 dark:gray-600 opacity-50 dark:opacity-50))`,
22
+ menuIsOpen ? tw`relative z-30` : ''
23
+ ]"
23
24
>
24
25
<svg
26
+ v-if =" menuIsOpen"
27
+ :class =" tw`w-5`"
28
+ xmlns =" http://www.w3.org/2000/svg"
29
+ fill =" none"
30
+ viewBox =" 0 0 24 24"
31
+ stroke =" currentColor"
32
+ >
33
+ <path
34
+ stroke-linecap =" round"
35
+ stroke-linejoin =" round"
36
+ stroke-width =" 2"
37
+ d =" M19 9l-7 7-7-7"
38
+ />
39
+ </svg >
40
+ <svg
41
+ v-else
25
42
:class =" tw`w-5`"
26
43
xmlns =" http://www.w3.org/2000/svg"
27
44
fill =" none"
35
52
d =" M4 6h16M4 12h16M4 18h16"
36
53
/>
37
54
</svg >
38
- <div >{{ currentRoute.meta.title }}</div >
55
+ <div >{{ menuIsOpen ? "Choose a page" : currentRoute.meta.title }}</div >
39
56
</button >
40
57
41
58
<SidebarWrapper :menuIsOpen =" menuIsOpen" >
42
59
<ul :class =" tw`sticky top-10`" >
43
60
<li :class =" classes.heading" >Getting Started</li >
44
- <SidebarLink @click =" toggleMenu " to =" /docs/install" >
61
+ <SidebarLink @click =" closeMenu " to =" /docs/install" >
45
62
Installation
46
63
</SidebarLink >
47
- <SidebarLink @click =" toggleMenu " to =" /docs/theming" >Theming</SidebarLink >
48
- <SidebarLink @click =" toggleMenu " to =" /docs/guides" >Guides</SidebarLink >
64
+ <SidebarLink @click =" closeMenu " to =" /docs/theming" >Theming</SidebarLink >
65
+ <SidebarLink @click =" closeMenu " to =" /docs/guides" >Guides</SidebarLink >
49
66
<li :class =" classes.heading" >
50
67
<div :class =" tw`mt-8`" >Components</div >
51
68
</li >
52
- <SidebarLink @click =" toggleMenu " to =" /docs/anchor" >
69
+ <SidebarLink @click =" closeMenu " to =" /docs/anchor" >
53
70
Anchor Link
54
71
</SidebarLink >
55
- <SidebarLink @click =" toggleMenu " to =" /docs/button" >Button</SidebarLink >
56
- <SidebarLink @click =" toggleMenu " to =" /docs/dropdown" >
72
+ <SidebarLink @click =" closeMenu " to =" /docs/button" >Button</SidebarLink >
73
+ <SidebarLink @click =" closeMenu " to =" /docs/dropdown" >
57
74
Dropdown
58
75
</SidebarLink >
59
- <SidebarLink @click =" toggleMenu " to =" /docs/prose" >Prose</SidebarLink >
60
- <SidebarLink @click =" toggleMenu " to =" /docs/table" >Table</SidebarLink >
76
+ <SidebarLink @click =" closeMenu " to =" /docs/prose" >Prose</SidebarLink >
77
+ <SidebarLink @click =" closeMenu " to =" /docs/table" >Table</SidebarLink >
61
78
</ul >
62
79
</SidebarWrapper >
63
80
</template >
@@ -87,13 +104,17 @@ export default defineComponent({
87
104
menuIsOpen .value = ! menuIsOpen .value ;
88
105
};
89
106
107
+ const closeMenu = (): void => {
108
+ menuIsOpen .value = false ;
109
+ };
110
+
90
111
watch (menuIsOpen , (menuIsOpen ) => {
91
112
menuIsOpen
92
113
? document .body .classList .add (tw ` overflow-hidden ` )
93
114
: document .body .classList .remove (tw ` overflow-hidden ` );
94
115
});
95
116
96
- return { tw , currentRoute , classes , menuIsOpen , toggleMenu };
117
+ return { tw , currentRoute , classes , menuIsOpen , toggleMenu , closeMenu };
97
118
},
98
119
});
99
120
</script >
0 commit comments