Meal card adjustments

This commit is contained in:
jableader 2024-05-02 22:07:55 +10:00
parent 03c1bdfe94
commit 8cc01b0ab5
5 changed files with 42 additions and 41 deletions

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M17 9.5L12 14.5L7 9.5" stroke="#000000" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 328 B

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7 14.5L12 9.5L17 14.5" stroke="#000000" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 329 B

View file

@ -39,17 +39,10 @@
</span> </span>
<span v-if="!meal.consumers.length">somebody?</span> <span v-if="!meal.consumers.length">somebody?</span>
</p> </p>
<a @click="$emit('edit-meal', meal)">Edit</a>
</div> </div>
</template> </template>
<style> <style>
.meal-card {
border: 1px solid #ccc;
border-radius: 5px;
padding: 10px;
margin-bottom: 10px;
}
</style> </style>
<script> <script>

View file

@ -1,20 +1,21 @@
<template> <template>
<div> <div>
<ul v-if="meals.length"> <ul class="meals-list" v-if="meals.length">
<li v-for="meal in meals" :key="meal.id"> <li v-for="meal in meals" :key="meal.id">
<meal-card :meal="meal" @edit-meal="editmeal"/> <meal-card :meal="meal"/>
<button class="toggle-actions" @click="selectedMeal = ((meal == selectedMeal) ? null : meal)">
<img :src="meal == selectedMeal ? require('@/assets/chevron-down.svg') : require('@/assets/chevron-up.svg')" />
</button>
<ul class="actions" v-if="selectedMeal == meal">
<li><router-link class="nav-link" :to="`/meals/${selectedMeal.id}`" active-class="active">Edit Meal</router-link></li>
<li><a @click="deleteSelectedMeal" class="button">Remove</a></li>
</ul>
</li> </li>
</ul> </ul>
<ul v-if="!meals.length"> <ul v-if="!meals.length">
<li>No meals planned</li> <li>No meals planned</li>
</ul> </ul>
<ul class="actions" v-if="selectedMeal">
<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>
<li><a @click="deleteSelectedMeal" class="button">Remove</a></li>
<li><a @click="selectedMeal = null">Cancel</a></li>
</ul>
</div> </div>
</template> </template>
@ -23,10 +24,31 @@ li {
list-style-type: none; list-style-type: none;
} }
.actions ul { .toggle-actions {
cursor: pointer;
background-color: #fff;
border: none;
border-bottom: solid 1px #ccc;
padding: 0 2em;
margin: 0;
}
.toggle-actions img {
width: 2em;
height: 2em;
}
.meals-list > li {
margin-bottom: 1em;
padding: 0;
border: 1px solid #ccc;
border-radius: 5px;
padding: 10px;
}
ul.actions {
margin: 0; margin: 0;
padding: 0; padding: 0;
display: flex;
} }
.actions li { .actions li {
@ -44,6 +66,7 @@ li {
text-decoration: none; text-decoration: none;
color: #000; color: #000;
width: 100%; width: 100%;
cursor: pointer;
} }
</style> </style>
@ -75,10 +98,6 @@ export default {
this.meals = meals; this.meals = meals;
}, },
methods: { methods: {
editmeal(meal) {
console.log('editmeal', meal)
this.selectedMeal = meal;
},
async deleteSelectedMeal() { async deleteSelectedMeal() {
await data.deleteMeal(this.selectedMeal.id); await data.deleteMeal(this.selectedMeal.id);
this.meals = this.meals.filter(m => m.id !== this.selectedMeal.id); this.meals = this.meals.filter(m => m.id !== this.selectedMeal.id);

View file

@ -1,19 +0,0 @@
<template>
<div></div>
</template>
<script>
export default {
props: ['id'],
data() {
return {
meal: {
meal_date: new Date(),
recipe: { name: 'Sar Tay' },
chefs: [{ name: 'Ryan' }],
consumers: [{ name: 'Ryan' }, { name: 'Jacob' }],
}
}
},
}
</script>