103 lines
2.1 KiB
Vue
103 lines
2.1 KiB
Vue
<template>
|
|
<div class="app-container">
|
|
<banner :routes="routes" />
|
|
<router-view />
|
|
<Footer />
|
|
<UpdateToast v-if="showToast" :text="toastText" :refreshButton="refreshToast" v-on:closeToast="closeToast" />
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import ServiceWorkerMixin from "@/mixins/ServiceWorkerMixin";
|
|
import banner from "@/ui/Banner";
|
|
import Footer from "@/ui/Footer";
|
|
import UpdateToast from "@/ui/UpdateToast";
|
|
|
|
export default {
|
|
name: "vinlottis",
|
|
components: { banner, UpdateToast, Footer },
|
|
props: {},
|
|
data() {
|
|
return {
|
|
showToast: false,
|
|
toastText: null,
|
|
refreshToast: false,
|
|
routes: [
|
|
{
|
|
name: "Virtuelt lotteri",
|
|
route: "/lottery",
|
|
},
|
|
{
|
|
name: "Dagens viner",
|
|
route: "/dagens/",
|
|
},
|
|
{
|
|
name: "Highscore",
|
|
route: "/highscore",
|
|
},
|
|
{
|
|
name: "Historie",
|
|
route: "/history/",
|
|
},
|
|
{
|
|
name: "Foreslå vin",
|
|
route: "/request",
|
|
},
|
|
{
|
|
name: "Foreslåtte viner",
|
|
route: "/requested-wines",
|
|
},
|
|
{
|
|
name: "Login",
|
|
route: "/login",
|
|
},
|
|
],
|
|
};
|
|
},
|
|
mounted() {
|
|
console.log("SNEAKY PETE!");
|
|
this.$on("service-worker-updated", () => {
|
|
this.toastText = "Det er ny oppdatering av siden, vil du oppdatere?";
|
|
this.showToast = true;
|
|
this.refreshToast = true;
|
|
});
|
|
this.$on("push-allowed", () => {
|
|
this.toastText = "Push-notifications er skrudd på!";
|
|
this.refreshToast = false;
|
|
this.showToast = true;
|
|
});
|
|
},
|
|
computed: {},
|
|
mixins: [ServiceWorkerMixin],
|
|
methods: {
|
|
closeToast: function() {
|
|
this.showToast = false;
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
@import "styles/global.scss";
|
|
@import "styles/positioning.scss";
|
|
@import "styles/vinlottis-icons";
|
|
|
|
body {
|
|
background-color: $primary;
|
|
}
|
|
</style>
|
|
|
|
<style lang="scss" scoped>
|
|
.app-container {
|
|
background-color: white;
|
|
min-height: 100vh;
|
|
display: grid;
|
|
grid-template-rows: 80px auto 100px;
|
|
|
|
.main-container {
|
|
height: 100%;
|
|
width: 100%;
|
|
}
|
|
}
|
|
</style>
|