Skip to content

Commit 8d7102e

Browse files
committed
feat(navbar): adds initial drawer for additional buttons
1 parent dc43e28 commit 8d7102e

File tree

5 files changed

+41
-8
lines changed

5 files changed

+41
-8
lines changed

src/components/AppComponent.vue

+4-5
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,11 @@ const { isAuthenticated } = useAuthSettingsStoreRefs();
2828

2929
<style lang="scss" scoped>
3030
@use '~/styles/mixin' as mixin;
31+
@use '~/styles/layout' as layout;
3132
@use '~/styles/z-index' as layers;
3233
@use '~/styles/transition' as transition;
3334
@include transition.scale;
3435
35-
$header-height: 2.75rem;
36-
3736
header {
3837
position: fixed;
3938
top: 0;
@@ -42,7 +41,7 @@ header {
4241
flex-direction: column;
4342
justify-content: center;
4443
width: 100%;
45-
height: $header-height;
44+
min-height: layout.$header-navbar-height;
4645
4746
> :first-child {
4847
@include mixin.hover-background;
@@ -53,7 +52,7 @@ main {
5352
display: flex;
5453
align-items: center;
5554
justify-content: center;
56-
min-height: calc(100% - #{$header-height});
57-
margin-top: $header-height;
55+
min-height: calc(100% - #{layout.$header-navbar-height});
56+
margin-top: layout.$header-navbar-height;
5857
}
5958
</style>

src/components/common/navbar/NavbarComponent.vue

+23-1
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,12 @@ const navigate = (to: Route) => {
1818
1919
const routes = [Route.Progress, Route.Calendar, Route.History, Route.List, Route.Search];
2020
21+
const isHover = ref(false);
2122
const navElement = ref<HTMLElement>();
2223
</script>
2324

2425
<template>
25-
<nav ref="navElement">
26+
<nav ref="navElement" @mouseenter="isHover = true" @mouseleave="isHover = false">
2627
<NTabs
2728
:value="route.name?.toString()"
2829
class="tabs"
@@ -50,15 +51,36 @@ const navElement = ref<HTMLElement>();
5051
<NavbarSettingsDropdown v-if="navElement" :parent-element="navElement" />
5152
</NTab>
5253
</NTabs>
54+
<div class="drawer" :class="{ visible: isHover }">
55+
<div>This is an optional drawer</div>
56+
</div>
5357
</nav>
5458
</template>
5559

5660
<style lang="scss" scoped>
61+
@use '~/styles/layout' as layout;
62+
5763
nav {
5864
padding: 0 0.25rem;
5965
font-size: 12px;
6066
text-align: center;
6167
68+
.drawer {
69+
display: flex;
70+
align-items: center;
71+
justify-content: center;
72+
height: 0;
73+
overflow: hidden;
74+
transition: height 0.5s var(--n-bezier);
75+
transition-delay: 0.2s;
76+
77+
&.visible {
78+
height: layout.$header-drawer-height;
79+
transition: height 0.25s var(--n-bezier);
80+
transition-delay: 0s;
81+
}
82+
}
83+
6284
a {
6385
color: inherit; /* blue colors for links too */
6486
text-decoration: inherit; /* no underline */

src/components/views/history/HistoryComponent.vue

+8-2
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ const getTitle = (media: TraktHistory) => {
5959
<template>
6060
<NVirtualList
6161
ref="virtualList"
62-
style="max-height: calc(100dvh - 8px); margin-top: -44px; margin-bottom: 8px"
62+
class="history-list"
6363
:item-size="80"
6464
:data-length="history.length"
6565
:items="history"
@@ -87,5 +87,11 @@ const getTitle = (media: TraktHistory) => {
8787
</template>
8888

8989
<style lang="scss" scoped>
90-
// TODO
90+
@use '~/styles/layout' as layout;
91+
92+
.history-list {
93+
max-height: calc(100dvh - 8px);
94+
margin-top: -#{layout.$header-navbar-height};
95+
margin-bottom: 8px;
96+
}
9197
</style>

src/styles/layout.scss

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
$header-navbar-height: 2.75rem;
2+
$header-drawer-height: 2.75rem;

src/styles/layout.style.ts

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export const Header = {
2+
navbarHeight: 44,
3+
drawerHeight: 44,
4+
} as const;

0 commit comments

Comments
 (0)