From 7b5fbe1307f6168cf0d4519b216aebea47812bf0 Mon Sep 17 00:00:00 2001 From: ingrid <ingrimeg@stud.ntnu.no> Date: Fri, 21 Apr 2023 14:47:00 +0200 Subject: [PATCH] =?UTF-8?q?la=20inn=20kj=C3=B8leskapsside?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/FridgeItem.vue | 108 ++++++++++++++++++++++++++++++++++ src/components/Navbar.vue | 2 +- src/router/index.js | 6 ++ src/views/FridgeView.vue | 37 ++++++++++++ 4 files changed, 152 insertions(+), 1 deletion(-) create mode 100644 src/components/FridgeItem.vue create mode 100644 src/views/FridgeView.vue diff --git a/src/components/FridgeItem.vue b/src/components/FridgeItem.vue new file mode 100644 index 0000000..0643db0 --- /dev/null +++ b/src/components/FridgeItem.vue @@ -0,0 +1,108 @@ +<template> +<div id ="item"> + <img src="src/components/icons/logo.png" alt=""> + <div id="itemInfo"> + <h1>{{ itemName }} {{ quantity }}{{quantityUnit}}</h1> + <h2>{{expirationText}}</h2> + </div> + <Icon icon="game-icons:apple-core" :color="iconColor" :style="{ fontSize: iconSize }" /> +</div> + <hr> +</template> + +<script> +import {Icon} from "@iconify/vue"; + +export default { + name: "FridgeItem", + components: {Icon}, + computed: { + iconColor(){ + return 'black'; + }, + iconSize() { + return '4rem' + }, + expirationText() { + const expirationDays = this.getDateDifference(); + + if(expirationDays<0) { + return "Utgikk " + this.expiration + } + + switch (expirationDays){ + case expirationDays < -1: + return "Utgikk " + this.expiration + case 0: + return "Utgår i dag" + case -0: + return "Utgår i dag" + case 1: + return "Utgår i morgen" + case 2: + return "Utgår om to dager" + case 3: + return "Utgår om tre dager" + default: + return "Utgår " + this.expiration + } + + + return "i morgen" + } + }, + props: { + itemName: String, + expiration: String, + image: String, + quantity: String, + quantityUnit: String, + }, + methods: { + getDateDifference(){ //returns the difference between two dates + const date = this.expiration.split('.'); + const dateFormat = date[1] + "/" + date [0]+ "/"+date[2]; + + const expDate = new Date(dateFormat); + const today = new Date(); + + console.log(expDate) + console.log(today) + console.log(expDate-today); + const ms = expDate-today; + const numOfDays = Math.ceil(ms/(86400000)) + + console.log(numOfDays) + + return numOfDays; + }, + + } +} +</script> + +<style scoped lang="scss"> +#item { + background-color: base.$white; + color: black; + border-radius: 10px; + padding: 1em; + padding-left: 2em; + padding-right:2em; + display:flex; + align-items: center; + justify-content: space-between; +} + + +img { + width: 4rem; + margin-right:.6em; + +} + +#itemInfo{ + width: 100%; +} + +</style> \ No newline at end of file diff --git a/src/components/Navbar.vue b/src/components/Navbar.vue index c452876..ecca59a 100644 --- a/src/components/Navbar.vue +++ b/src/components/Navbar.vue @@ -8,7 +8,7 @@ </RouterLink> </li> <li> - <RouterLink :to="'/'" :aria-label="'link to fridge page'"> + <RouterLink :to="'/myFridge'" :aria-label="'link to fridge page'"> <Icon icon="mingcute:fridge-line" :color="iconColor" :style="{ fontSize: iconSize }"/> </RouterLink> </li> diff --git a/src/router/index.js b/src/router/index.js index 15a23ad..fd734d8 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -1,5 +1,6 @@ import { createRouter, createWebHistory } from 'vue-router' import HomeView from "@/views/HomeView.vue"; +import FridgeView from "@/views/FridgeView.vue"; const router = createRouter({ @@ -10,6 +11,11 @@ const router = createRouter({ name: 'home', component: HomeView }, + { + path: '/myFridge', + name: 'myFridge', + component: FridgeView + }, ] }) diff --git a/src/views/FridgeView.vue b/src/views/FridgeView.vue new file mode 100644 index 0000000..7d2ec17 --- /dev/null +++ b/src/views/FridgeView.vue @@ -0,0 +1,37 @@ +<template> + <main> + <h1>Kjøleskap</h1><br><br> + <div id = "itemCOntainer"> + <FridgeItem item-name="Melk" quantity="5" quantity-unit="dl" expiration="21.04.23"></FridgeItem> + <FridgeItem item-name="Melk" quantity="5" quantity-unit="dl" expiration="22.04.23"></FridgeItem> + <FridgeItem item-name="Fløte" quantity="1" quantity-unit="dl" expiration="21.04.22"></FridgeItem> + <FridgeItem item-name="Sommerkål" quantity="0.5" quantity-unit=" stk" expiration="14.02.23"></FridgeItem> + <FridgeItem item-name="Rar saus" quantity="0.5" quantity-unit=" stk" expiration="03.04.06"></FridgeItem> + <FridgeItem item-name="Eple" quantity="3" quantity-unit="stk" expiration="14.02.23"></FridgeItem> + <FridgeItem item-name="Smør" quantity="350" quantity-unit="g" expiration="25.06.23"></FridgeItem> + </div> + + </main> + +</template> + +<script> +import FridgeItem from "@/components/FridgeItem.vue"; + +export default { + name: "FridgeView", + components: {FridgeItem} +} +</script> + +<style scoped lang="scss"> +main { + padding-top: 4em; + color:black; + background-color: base.$white; +} + +#itemCOntainer { + background-color: base.$grey; +} +</style> \ No newline at end of file -- GitLab