Meal card adjustments
This commit is contained in:
parent
03c1bdfe94
commit
8cc01b0ab5
5 changed files with 42 additions and 41 deletions
4
src/assets/chevron-down.svg
Normal file
4
src/assets/chevron-down.svg
Normal 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 |
4
src/assets/chevron-up.svg
Normal file
4
src/assets/chevron-up.svg
Normal 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 |
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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>
|
|
||||||
Loading…
Reference in a new issue