aboutsummaryrefslogtreecommitdiff
path: root/src/components/navigation/navigation_pins.vue
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/navigation/navigation_pins.vue')
-rw-r--r--src/components/navigation/navigation_pins.vue67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/components/navigation/navigation_pins.vue b/src/components/navigation/navigation_pins.vue
new file mode 100644
index 00000000..fc89ca3d
--- /dev/null
+++ b/src/components/navigation/navigation_pins.vue
@@ -0,0 +1,67 @@
+<template>
+ <span class="NavigationPins">
+ <router-link
+ v-for="item in pinnedList"
+ :key="item.name"
+ class="pinned-item"
+ :to="item.routeObject || { name: (currentUser || item.anon) ? item.route : item.anonRoute, params: { username: currentUser.screen_name } }"
+ >
+ <FAIcon
+ v-if="item.icon"
+ fixed-width
+ :icon="item.icon"
+ />
+ <span
+ v-if="item.iconLetter"
+ class="iconLetter fa-scale-110 fa-old-padding"
+ >{{ item.iconLetter }}</span>
+ <div
+ v-if="item.badgeGetter && getters[item.badgeGetter]"
+ class="alert-dot"
+ />
+ </router-link>
+ </span>
+</template>
+
+<script src="./navigation_pins.js"></script>
+
+<style lang="scss">
+@import '../../_variables.scss';
+.NavigationPins {
+ display: flex;
+ overflow: hidden;
+
+ .alert-dot {
+ border-radius: 100%;
+ height: 0.5em;
+ width: 0.5em;
+ position: absolute;
+ right: calc(50% - 0.25em);
+ top: calc(50% - 0.25em);
+ margin-left: 6px;
+ margin-top: -6px;
+ background-color: $fallback--cRed;
+ background-color: var(--badgeNotification, $fallback--cRed);
+ }
+
+ .pinned-item {
+ position: relative;
+ flex: 0 0 3em;
+ min-width: 2em;
+ text-align: center;
+
+ & .svg-inline--fa,
+ & .iconLetter {
+ margin: 0;
+ }
+
+ &.router-link-active {
+ & .svg-inline--fa,
+ & .iconLetter {
+ color: $fallback--text;
+ color: var(--selectedMenuText, $fallback--text);
+ }
+ }
+ }
+}
+</style>