66 lines
1.5 KiB
Vue
66 lines
1.5 KiB
Vue
|
<template>
|
||
|
<div>
|
||
|
<nav-bar :user="user" v-on:invalidate-user="onInvalidateUser"></nav-bar>
|
||
|
|
||
|
<b-container fluid class="mt-5 main-content">
|
||
|
<b-row>
|
||
|
<div class="col-2">
|
||
|
<sidebar></sidebar>
|
||
|
</div>
|
||
|
<div class="col-9 box">
|
||
|
<router-view v-on:user-authenticated="onUserAuthenticated" :quote="quote"></router-view>
|
||
|
</div>
|
||
|
<div class="col mt-2">
|
||
|
</div>
|
||
|
</b-row>
|
||
|
</b-container>
|
||
|
|
||
|
<footer-component></footer-component>
|
||
|
</div>
|
||
|
</template>
|
||
|
|
||
|
|
||
|
<script>
|
||
|
import axios from 'axios';
|
||
|
|
||
|
import NavBar from '@/components/navbar'
|
||
|
import Sidebar from "@/components/Sidebar";
|
||
|
import FooterComponent from '@/components/footer'
|
||
|
|
||
|
|
||
|
export default {
|
||
|
name: 'Main',
|
||
|
components: {
|
||
|
Sidebar,
|
||
|
NavBar,
|
||
|
FooterComponent
|
||
|
},
|
||
|
methods: {
|
||
|
onUserAuthenticated(userUri) {
|
||
|
console.log("authenticated")
|
||
|
axios
|
||
|
.get(userUri)
|
||
|
.then(response => (this.user = response.data))
|
||
|
this.$router.push('/')
|
||
|
},
|
||
|
onInvalidateUser() {
|
||
|
console.log("invalidated")
|
||
|
this.user = null;
|
||
|
}
|
||
|
},
|
||
|
data() {
|
||
|
return {
|
||
|
user: null,
|
||
|
quote: null
|
||
|
}
|
||
|
},
|
||
|
mounted() {
|
||
|
if (window.user) {
|
||
|
this.user = window.user
|
||
|
}
|
||
|
if (window.quote) {
|
||
|
this.quote = window.quote
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
</script>
|