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>
 |