Newer
Older
<template><h1>Kjøleskap</h1><br><br>
<ItemSearch v-if="searchVisible" @itemsAdded="updateFridge"></ItemSearch>
<div id = "fridgeMsg"><p>Melding fra kjøleskapet:</p><span>{{this.fridgeMsg}}</span></div>
<eat-fridge-item-modal @closeModal="hideModal" v-if="visible" :fridge-item="selectedItem"></eat-fridge-item-modal>
<div id = "itemContainer" >
<FridgeItem v-for="item in fridgeItems" :fridgeItem = "item" @appleBtnPressed="showModal"></FridgeItem>
<button @click="showItemSearch" id="addItemBtn">
</main>
</template>
<script>
import FridgeItem from "@/components/FridgeItem.vue";
import EatFridgeItemModal from "@/components/EatFridgeItemModal.vue";
import {mapState, mapStores} from "pinia";
import {useAuthStore} from "@/stores/authStore";
import {useFridgeStore} from "@/stores/fridgeStore";
import ItemSearch from "@/components/ItemSearch.vue";
import fridgeItem from "@/components/FridgeItem.vue";
export default {
name: "FridgeView",
components: {ItemSearch, EatFridgeItemModal, FridgeItem},
computed:{
...mapState(useAuthStore, ['account']),
...mapStores(useFridgeStore),
},
visible: false, //is the useitemModal visible
selectedItem: null,
fridgeItems: [],
searchVisible: false,
fridgeMsg: ""
showModal(item){
this.visible = true;
this.selectedItem = item;
},
showItemSearch() {
this.searchVisible=!this.searchVisible;
window.scrollTo({ top: 0, behavior: 'smooth' });
},
hideItemSearch() {
this.searchVisible=false;
},
updateFridgeMessage(msg){
this.fridgeMsg=msg;
},
Ingrid Martinsheimen Egge
committed
async updateFridge(addedItem) {
this.fridgeItems = await API.getFridgeItems();
this.fridgeItems = await API.getFridgeItems();
this.hideItemSearch();
Ingrid Martinsheimen Egge
committed
this.updateFridgeMessage(addedItem.name + " ble lagt i kjøleskapet.")
async mounted() {
this.fridgeItems = await API.getFridgeItems();
Ingrid Martinsheimen Egge
committed
if(this.fridgeItems.length===0){
this.fridgeMsg="Kjøleskapet ditt er tomt. Legg inn varer ved å trykke på pluss-knappen nederst i høyre hjørne"
}
}
</script>
<style scoped lang="scss">
main {
background-color: base.$grey;
padding: 2em;
min-height: 600px;
padding-top: 2em;
#addItemBtn {
width: 2.5em;
height: 2.5em;
border-radius: 50%;
font-size: 30px;
border:none;
color: white;
box-shadow: 0px 0px 20px rgba(0,0,0,0.3);
}
background-color: base.$light-green-hover;
color: white;
box-shadow: 0px 0px 20px rgba(0,0,0,0.5);
cursor: pointer;
}
padding-bottom: 3em;
z-index: 9999;
position: fixed;
bottom: 15px;
right: 1em;
#fridgeMsg {
background-color: base.$light-green;
padding: 1em;
}
#fridgeMsg span, #fridgeMsg p{
font-weight: bolder;
font-size: 1.2em;
}