1
1
<script lang="ts" setup>
2
2
import { NTab , NTabs } from ' naive-ui' ;
3
- import { ref } from ' vue' ;
3
+ import { computed , ref , useSlots } from ' vue' ;
4
4
import { useRoute , useRouter } from ' vue-router' ;
5
5
6
6
import NavbarSettingsDropdown from ' ~/components/common/navbar/NavbarSettingsDopdown.vue' ;
@@ -11,6 +11,7 @@ import { useI18n } from '~/utils';
11
11
const i18n = useI18n (' route' );
12
12
const route = useRoute ();
13
13
const router = useRouter ();
14
+ const slots = useSlots ();
14
15
15
16
const navigate = (to : Route ) => {
16
17
router .push (to );
@@ -19,6 +20,8 @@ const navigate = (to: Route) => {
19
20
const routes = [Route .Progress , Route .Calendar , Route .History , Route .List , Route .Search ];
20
21
21
22
const isHover = ref (false );
23
+ const showDrawer = computed (() => route .name && !! slots .drawer && isHover .value );
24
+
22
25
const navElement = ref <HTMLElement >();
23
26
</script >
24
27
@@ -51,8 +54,8 @@ const navElement = ref<HTMLElement>();
51
54
<NavbarSettingsDropdown v-if =" navElement" :parent-element =" navElement" />
52
55
</NTab >
53
56
</NTabs >
54
- <div class =" drawer" :class =" { visible: isHover }" >
55
- <div >This is an optional drawer</ div >
57
+ <div class =" drawer" :class =" { visible: showDrawer }" >
58
+ <slot name = " drawer" ></ slot >
56
59
</div >
57
60
</nav >
58
61
</template >
0 commit comments