2024-01-13 02:00:15 +00:00
|
|
|
<template>
|
|
|
|
|
<div>
|
|
|
|
|
<ul v-if="meals.length">
|
|
|
|
|
<li v-for="meal in meals" :key="meal.id">
|
|
|
|
|
<meal-card :meal="meal" @edit-meal="editmeal"/>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
<ul v-if="!meals.length">
|
|
|
|
|
<li>No meals planned</li>
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
<ul class="actions" v-if="selectedMeal">
|
2024-01-17 11:31:45 +00:00
|
|
|
<li><router-link class="nav-link" :to="`/meals/${selectedMeal.id}`" active-class="active">Edit Meal</router-link></li>
|
|
|
|
|
<li><router-link class="nav-link" :to="`/meals/${selectedMeal.id}/swap`" active-class="active">Swap Day</router-link></li>
|
2024-01-13 02:00:15 +00:00
|
|
|
<li><a @click="deleteSelectedMeal" class="button">Remove</a></li>
|
|
|
|
|
<li><a @click="selectedMeal = null">Cancel</a></li>
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<style scoped>
|
|
|
|
|
li {
|
|
|
|
|
list-style-type: none;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.actions ul {
|
|
|
|
|
margin: 0;
|
|
|
|
|
padding: 0;
|
|
|
|
|
display: flex;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.actions li {
|
|
|
|
|
display: block;
|
|
|
|
|
border: 1px solid #ccc;
|
|
|
|
|
padding: 2ex;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.actions li:hover {
|
|
|
|
|
background-color: #ccc;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.actions li a {
|
|
|
|
|
display: block;
|
|
|
|
|
text-decoration: none;
|
|
|
|
|
color: #000;
|
|
|
|
|
width: 100%;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
</style>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
import MealCard from './MealCard.vue'
|
2024-01-13 23:09:15 +00:00
|
|
|
import data from '@/data.js'
|
2024-01-13 02:00:15 +00:00
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
name: 'MealPlanPage',
|
|
|
|
|
components: {
|
|
|
|
|
MealCard
|
|
|
|
|
},
|
|
|
|
|
data() {
|
2024-01-13 23:09:15 +00:00
|
|
|
const from = new Date();
|
2024-01-17 11:31:45 +00:00
|
|
|
const to = new Date();
|
|
|
|
|
to.setDate(to.getDate() + 7);
|
2024-01-13 23:09:15 +00:00
|
|
|
|
2024-01-13 02:00:15 +00:00
|
|
|
return {
|
2024-01-13 23:09:15 +00:00
|
|
|
from, to,
|
2024-01-17 11:31:45 +00:00
|
|
|
meals: [],
|
2024-01-13 02:00:15 +00:00
|
|
|
selectedMeal: null
|
|
|
|
|
}
|
|
|
|
|
},
|
2024-01-17 09:17:22 +00:00
|
|
|
async beforeMount() {
|
|
|
|
|
const meals = await data.getMeals(this.from, this.to)
|
|
|
|
|
this.meals = meals;
|
2024-01-13 23:09:15 +00:00
|
|
|
},
|
2024-01-13 02:00:15 +00:00
|
|
|
methods: {
|
|
|
|
|
editmeal(meal) {
|
|
|
|
|
console.log('editmeal', meal)
|
|
|
|
|
this.selectedMeal = meal;
|
|
|
|
|
},
|
|
|
|
|
deleteSelectedMeal() {
|
|
|
|
|
console.log('deleteSelectedMeal', this.selectedMeal)
|
|
|
|
|
this.selectedMeal = null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</script>
|