2019-07-06 09:21:29 -04:00
|
|
|
<template>
|
2020-04-18 00:57:55 -04:00
|
|
|
<a class="navbar-item" :class="{ 'is-active': is_active }" @click.stop.prevent="open_link()" :href="full_path()">
|
2019-07-06 09:21:29 -04:00
|
|
|
<slot></slot>
|
|
|
|
</a>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
import * as types from '@/store/mutation_types'
|
|
|
|
|
|
|
|
export default {
|
|
|
|
name: 'NavbarItemLink',
|
2020-04-18 00:57:55 -04:00
|
|
|
props: {
|
|
|
|
to: String,
|
|
|
|
exact: Boolean
|
|
|
|
},
|
2019-07-06 09:21:29 -04:00
|
|
|
|
|
|
|
computed: {
|
|
|
|
is_active () {
|
2020-04-18 00:57:55 -04:00
|
|
|
if (this.exact) {
|
|
|
|
return this.$route.path === this.to
|
|
|
|
}
|
2019-07-06 09:21:29 -04:00
|
|
|
return this.$route.path.startsWith(this.to)
|
2020-04-18 00:57:55 -04:00
|
|
|
},
|
|
|
|
|
|
|
|
show_player_menu: {
|
|
|
|
get () {
|
|
|
|
return this.$store.state.show_player_menu
|
|
|
|
},
|
|
|
|
set (value) {
|
|
|
|
this.$store.commit(types.SHOW_PLAYER_MENU, value)
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
show_burger_menu: {
|
|
|
|
get () {
|
|
|
|
return this.$store.state.show_burger_menu
|
|
|
|
},
|
|
|
|
set (value) {
|
|
|
|
this.$store.commit(types.SHOW_BURGER_MENU, value)
|
|
|
|
}
|
2019-07-06 09:21:29 -04:00
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
methods: {
|
|
|
|
open_link: function () {
|
2020-04-18 00:57:55 -04:00
|
|
|
if (this.show_burger_menu) {
|
|
|
|
this.$store.commit(types.SHOW_BURGER_MENU, false)
|
|
|
|
}
|
|
|
|
if (this.show_player_menu) {
|
|
|
|
this.$store.commit(types.SHOW_PLAYER_MENU, false)
|
|
|
|
}
|
2019-07-06 09:21:29 -04:00
|
|
|
this.$router.push({ path: this.to })
|
|
|
|
},
|
|
|
|
|
|
|
|
full_path: function () {
|
|
|
|
const resolved = this.$router.resolve(this.to)
|
|
|
|
return resolved.href
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</script>
|