2020-11-26 01:30:15 +01:00
|
|
|
<template>
|
|
|
|
<b-navbar toggleable="sm" type="dark" variant="dark" fixed="top">
|
|
|
|
|
|
|
|
<b-navbar-brand>
|
|
|
|
<b>onSpot</b>
|
|
|
|
</b-navbar-brand>
|
|
|
|
|
|
|
|
|
|
|
|
<b-navbar-toggle target="nav-text-collapse"></b-navbar-toggle>
|
|
|
|
|
|
|
|
<b-collapse id="nav-text-collapse" is-nav>
|
|
|
|
|
|
|
|
<b-navbar-nav>
|
|
|
|
<b-nav-item v-if="$store.getters.isLoggedIn" to="/">My Collections</b-nav-item>
|
|
|
|
<b-nav-item v-else to="/login">Login</b-nav-item>
|
|
|
|
<b-nav-item to="/about">About</b-nav-item>
|
|
|
|
</b-navbar-nav>
|
|
|
|
|
2020-11-26 03:18:28 +01:00
|
|
|
|
2020-11-26 01:30:15 +01:00
|
|
|
<b-navbar-nav class="ml-auto" v-if="$store.getters.isLoggedIn">
|
2020-11-26 03:18:28 +01:00
|
|
|
<b-nav-item-dropdown right no-caret>
|
|
|
|
<template #button-content>
|
|
|
|
<b-icon icon="person-fill"/>
|
|
|
|
{{ $store.state.userdata.name }}
|
|
|
|
</template>
|
|
|
|
<b-overlay :show="logoutProcessing">
|
|
|
|
|
|
|
|
<b-dropdown-text>Logged in to...</b-dropdown-text>
|
|
|
|
<b-dropdown-text>
|
|
|
|
<b-img src="@/assets/musicbrainz.svg" width="200px"/>
|
|
|
|
</b-dropdown-text>
|
|
|
|
<b-dropdown-divider></b-dropdown-divider>
|
|
|
|
<b-dropdown-item @click="performLogout">Logout</b-dropdown-item>
|
|
|
|
|
|
|
|
</b-overlay>
|
2020-11-26 01:30:15 +01:00
|
|
|
</b-nav-item-dropdown>
|
|
|
|
</b-navbar-nav>
|
|
|
|
|
2020-11-26 03:18:28 +01:00
|
|
|
|
2020-11-26 01:30:15 +01:00
|
|
|
</b-collapse>
|
|
|
|
</b-navbar>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
export default {
|
2020-11-26 03:18:28 +01:00
|
|
|
name: "Navbar",
|
|
|
|
data() {
|
|
|
|
return {
|
|
|
|
logoutProcessing: false
|
|
|
|
}
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
performLogout() {
|
|
|
|
this.logoutProcessing = true;
|
|
|
|
this.$api.performLogout().then(() => {
|
|
|
|
this.$store.dispatch('storeUserData', null).then(() => {
|
|
|
|
this.$router.push('/login').catch(() => {
|
|
|
|
});
|
|
|
|
|
|
|
|
this.logoutProcessing = false;
|
|
|
|
})
|
|
|
|
}).catch(({text}) => {
|
|
|
|
this.$showToast(text);
|
|
|
|
this.logoutProcessing = false;
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
2020-11-26 01:30:15 +01:00
|
|
|
}
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style scoped>
|
|
|
|
|
|
|
|
</style>
|