diff --git a/src/stores/authStore.js b/src/stores/authStore.js index 1aaf2007015cfaf17202ac2026888ecadfe05e96..26abffe2f8167891e46d89a9380522ce38abfb10 100644 --- a/src/stores/authStore.js +++ b/src/stores/authStore.js @@ -6,7 +6,8 @@ export const useAuthStore = defineStore("auth", { account: {}, profile: {}, profiles: [], - items: {ingredientList: [], suggestionList: []} + items: {ingredientList: [], suggestionList: []}, + fridgeItems: [], }; }, persist: { @@ -38,6 +39,12 @@ export const useAuthStore = defineStore("auth", { }, setItem(item) { this.items.push(item); + }, + setFridge(fridgeItems){ + this.fridgeItems=fridgeItems; + }, + addItemToFridge(fridgeItem){ + this.fridgeItems.push(fridgeItem); } } }); diff --git a/src/util/API.js b/src/util/API.js index db0615097ee0bac3af900ac26c3114e21f3d5e4a..d054cda4c5af69e9aa58dc44f2104b4f11481e4c 100644 --- a/src/util/API.js +++ b/src/util/API.js @@ -183,6 +183,7 @@ export const API = { headers: { Authorization: `Bearer ${authStore.token}` }, }) .then((response) => { + authStore.setFridge(response.data) return response.data; }).catch(() => { throw new Error("Could not fetch fridge items"); @@ -233,6 +234,7 @@ export const API = { axios.put(`${import.meta.env.VITE_BACKEND_URL}/fridge/ingredientsAmount`, request,{ headers: { Authorization: `Bearer ${authStore.token}` }, }).then((response) => { + authStore.setFridge(response.data); return response.data; }).catch(()=> { throw new Error("Could modify ingredient. "); @@ -256,22 +258,6 @@ export const API = { }) }, - - //returns fridgeItem of specific id - getFridgeItem: async (id) =>{ - const authStore = useAuthStore(); - - axios.get(`${import.meta.env.VITE_BACKEND_URL}/fridge/${id}`, { - headers: { Authorization: `Bearer ${authStore.token}` }, - }) - .then((response) => { - return response.data; - }) - .catch(() => { - throw new Error("Could not fetch fridge item"); - }); - }, - /** * Getter for the shopping list of a logged in account * @returns a promise that resolves to an array of Ingredient objects representing the shopping list, or an error if it fails @@ -402,6 +388,9 @@ export const API = { }, + + + /** diff --git a/src/views/FridgeView.vue b/src/views/FridgeView.vue index a52a9ddb21d8bb8156bbf32b788e9e9785c165d9..caa343712919d16285481552929ab5541f8c0ca4 100644 --- a/src/views/FridgeView.vue +++ b/src/views/FridgeView.vue @@ -31,14 +31,13 @@ export default { name: "FridgeView", components: {ItemSearch, EatFridgeItemModal, FridgeItem}, computed:{ - ...mapState(useAuthStore, ['account']), - ...mapStores(useFridgeStore), + ...mapState(useAuthStore, ['account', 'fridgeItems']), }, data() { return { visible: false, //is the useitemModal visible selectedItem: null, - fridgeItems: [], + //fridgeItems: [], searchVisible: false, fridgeMsg: "" } @@ -63,14 +62,14 @@ export default { }, async updateFridge(addedItem) { this.fridgeItems = await API.getFridgeItems(); - this.fridgeItems = await API.getFridgeItems(); + this.hideItemSearch(); this.updateFridgeMessage(addedItem.name + " ble lagt i kjøleskapet.") }, }, async mounted() { - this.fridgeItems = await API.getFridgeItems(); + await API.getFridgeItems() if(this.fridgeItems.length===0){ this.fridgeMsg="Kjøleskapet ditt er tomt." }