blob: cb1aaa46795bae03f7d081899d2b06033184f18e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
<template>
<nav class='nav-bar container asd' id="nav">
<div class='inner-nav mobile-inner-nav' @click="scrollToTop()" :class="{ 'shifted': notificationsOpen }">
<div class='item'>
<a href="#" class="menu-button" @click.stop.prevent="toggleMobileSidebar()">
<i class="button-icon icon-menu"></i>
</a>
<router-link class="site-name" :to="{ name: 'root' }" active-class="home">{{sitename}}</router-link>
</div>
<div class='item right'>
<a v-if="currentUser" href="#" class="menu-button" @click.stop.prevent="toggleMobileNotifications()">
<i class="button-icon icon-bell-alt"></i>
<div class="alert-dot" v-if="unseenNotificationsCount"></div>
</a>
</div>
<div class="mobile-notifications-header">
<span>{{$t('notifications.notifications')}}</span>
<i class="icon-cancel" @click.stop.prevent="toggleMobileNotifications()"/>
</div>
</div>
<SideDrawer ref="sideDrawer" :logout="logout"/>
<div v-if="currentUser" class="mobile-notifications" :class="{ 'closed': !notificationsOpen }">
<Notifications ref="notifications" noHeading="true"/>
</div>
<MobilePostStatusModal />
</nav>
</template>
<script src="./mobile_nav.js"></script>
<style lang="scss">
@import '../../_variables.scss';
.mobile-inner-nav {
transition: transform 0.25s;
&.shifted {
transform: translateX(-100%);
}
}
.mobile-notifications-header {
display: flex;
align-items: center;
justify-content: space-between;
width: calc(100% - 1.6em);
height: 100%;
margin: 0 0.8em 0 0.8em;
position: absolute;
font-size: 1.3em;
color: $fallback--text;
color: var(--text, $fallback--text);
top: 0;
left: 100%;
}
.menu-button {
position: relative;
}
.alert-dot {
border-radius: 100%;
height: 8px;
width: 8px;
position: absolute;
left: calc(50% - 4px);
top: calc(50% - 4px);
margin-left: 6px;
margin-top: -6px;
background-color: $fallback--cRed;
background-color: var(--badgeNotification, $fallback--cRed);
}
.mobile-notifications {
position: fixed;
width: 100vw;
height: calc(100vh - 50px);
top: 50px;
left: 0;
overflow-x: hidden;
overflow-y: scroll;
transition-property: transform;
transition-duration: 0.25s;
transform: translate(0);
color: $fallback--text;
color: var(--text, $fallback--text);
background-color: $fallback--bg;
background-color: var(--bg, $fallback--bg);
.notifications {
margin: 0;
padding: 0;
border-radius: 0;
box-shadow: none;
.panel {
border-radius: 0;
margin: 0;
box-shadow: none;
}
.panel:after {
border-radius: 0;
}
.panel .panel-heading {
border-radius: 0;
box-shadow: none;
}
}
&.closed {
transform: translate(100%);
}
}
</style>
|