Overhauled the navigation system to resolve a bunch of bugs and weird behaviours.
This commit is contained in:
@@ -1,20 +1,10 @@
|
|||||||
<script>
|
<script>
|
||||||
import navitem from './navitem.vue'
|
import { RouterLink, routerKey } from 'vue-router';
|
||||||
|
import { Icon } from '@iconify/vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
navitem
|
Icon
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
activeButton: ''
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
setActive(btn) {
|
|
||||||
this.activeButton = btn
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -23,13 +13,43 @@ export default {
|
|||||||
<template>
|
<template>
|
||||||
<div class="sidebar">
|
<div class="sidebar">
|
||||||
|
|
||||||
<!-- TODO: Connect these buttons to the scripts, figure out if I can turn this into a component or summ -->
|
|
||||||
<navitem icon="carbon:user" link="/profile" @click="setActive('#user')" :active="activeButton === '#user'" />
|
<RouterLink to="/profile" style="padding: 30px;">
|
||||||
|
<div>
|
||||||
|
<Icon icon="carbon:user" style="font-size: 35px;" />
|
||||||
|
</div>
|
||||||
|
</RouterLink>
|
||||||
|
|
||||||
<hr class="text-white">
|
<hr class="text-white">
|
||||||
<navitem icon="carbon:home" link="/" @click="setActive('#home')" :active="activeButton === '#home'" />
|
|
||||||
<navitem icon="carbon:events" link="/users" @click="setActive('#users')" :active="activeButton === '#users'"/>
|
<!-- home -->
|
||||||
<navitem icon="carbon:align-box-bottom-left" link="/forms" @click="setActive('#docs')" :active="activeButton === '#docs'"/>
|
<RouterLink to="/" style="padding: 30px;">
|
||||||
<navitem icon="carbon:tool-kit" link="#" @click="setActive('#tools')" :active="activeButton === '#tools'"/>
|
<div>
|
||||||
|
<Icon icon="carbon:home" style="font-size: 35px;" />
|
||||||
|
</div>
|
||||||
|
</RouterLink>
|
||||||
|
|
||||||
|
<!-- users -->
|
||||||
|
<RouterLink to="/users" style="padding: 30px;">
|
||||||
|
<div>
|
||||||
|
<Icon icon="carbon:events" style="font-size: 35px;" />
|
||||||
|
</div>
|
||||||
|
</RouterLink>
|
||||||
|
|
||||||
|
<!-- forms -->
|
||||||
|
<RouterLink to="/forms" style="padding: 30px;">
|
||||||
|
<div>
|
||||||
|
<Icon icon="carbon:align-box-bottom-left" style="font-size: 35px;" />
|
||||||
|
</div>
|
||||||
|
</RouterLink>
|
||||||
|
|
||||||
|
<!-- forms -->
|
||||||
|
<RouterLink to="/test" style="padding: 30px;">
|
||||||
|
<div>
|
||||||
|
<Icon icon="carbon:tool-kit" style="font-size: 35px;" />
|
||||||
|
</div>
|
||||||
|
</RouterLink>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -50,6 +70,19 @@ https://icon-sets.iconify.design/carbon/
|
|||||||
USING THE IBM CARBON ICON SET
|
USING THE IBM CARBON ICON SET
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
.button {
|
||||||
|
color: var(--white);
|
||||||
|
font-size: 35px;
|
||||||
|
/* overflow: hidden; */
|
||||||
|
/* height: 40px; */
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
/* margin: 10px; */
|
||||||
|
padding: 10px;
|
||||||
|
transition: color 0.2s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
.sidebar {
|
.sidebar {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
left: 0;
|
left: 0;
|
||||||
@@ -90,4 +123,9 @@ USING THE IBM CARBON ICON SET
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.router-link-active {
|
||||||
|
outline: 2px solid var(--accent-primary);
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -1,66 +0,0 @@
|
|||||||
<!-- <script>
|
|
||||||
export const navitem = {
|
|
||||||
props: ['icon', 'link']
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import { Icon } from '@iconify/vue'
|
|
||||||
|
|
||||||
</script> -->
|
|
||||||
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import { Icon } from '@iconify/vue'
|
|
||||||
import { RouterLink } from 'vue-router';
|
|
||||||
|
|
||||||
export default {
|
|
||||||
name: 'navitem',
|
|
||||||
props: {
|
|
||||||
icon: String,
|
|
||||||
link: String,
|
|
||||||
active: Boolean
|
|
||||||
},
|
|
||||||
components: {
|
|
||||||
Icon,
|
|
||||||
RouterLink
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<div class="aspect-square flex items-center place-content-center">
|
|
||||||
<RouterLink :to="link" class="button" :class="{ active: active }">
|
|
||||||
<Icon :icon="icon" />
|
|
||||||
</RouterLink>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
.button {
|
|
||||||
color: var(--white);
|
|
||||||
font-size: 35px;
|
|
||||||
/* overflow: hidden; */
|
|
||||||
/* height: 40px; */
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
/* margin: 10px; */
|
|
||||||
padding: 10px;
|
|
||||||
transition: color 0.2s ease-in-out;
|
|
||||||
}
|
|
||||||
|
|
||||||
.button:hover {
|
|
||||||
color: var(--accent-primary);
|
|
||||||
}
|
|
||||||
|
|
||||||
.active {
|
|
||||||
border: 2px solid var(--accent-primary);
|
|
||||||
border-radius: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div {
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
Reference in New Issue
Block a user