Reflecting changes no longer use props in Wine.vue

Reflecting changes now that wine should not have custom logic. No longer
send prop values other than wine down.
WinnerPage function called from the slot passed down, not using custom
:winner prop and @chosenWine event.
This commit is contained in:
2020-10-11 16:31:40 +02:00
committed by KevinMidboe
parent 64a1a8a93a
commit 5f2b29324d
3 changed files with 30 additions and 28 deletions

View File

@@ -85,7 +85,7 @@
<h3>Vinnere</h3> <h3>Vinnere</h3>
<a class="wine-link" @click="fetchColorsAndWinners()">Refresh data fra virtuelt lotteri</a> <a class="wine-link" @click="fetchColorsAndWinners()">Refresh data fra virtuelt lotteri</a>
<div class="winner-container" v-if="winners.length > 0"> <div class="winner-container" v-if="winners.length > 0">
<wine v-for="winner in winners" :key="winner" :wine="winner.wine" :inlineSlot="true"> <wine v-for="winner in winners" :key="winner" :wine="winner.wine">
<div class="winner-element"> <div class="winner-element">
<div class="color-selector"> <div class="color-selector">
<div class="label-div"> <div class="label-div">
@@ -500,6 +500,10 @@ hr {
color: grey; color: grey;
} }
.button-container {
margin-top: 1rem;
}
.page-container { .page-container {
padding: 0 1.5rem 3rem; padding: 0 1.5rem 3rem;
@@ -537,10 +541,10 @@ hr {
} }
.winner-element { .winner-element {
display: flex; display: flex;
flex-direction: row; flex-direction: column;
@include desktop { > div {
margin-top: 1.5rem; margin-bottom: 1rem;
} }
@include mobile { @include mobile {

View File

@@ -1,10 +1,8 @@
<template> <template>
<div class="outer"> <div class="container">
<div class="container"> <h1 class="title">Dagens viner</h1>
<h1 class="title">Dagens viner</h1> <div class="wines-container">
<div class="wines-container"> <Wine :wine="wine" v-for="wine in wines" :key="wine" />
<Wine :wine="wine" v-for="wine in wines" :key="wine" :fullscreen="true" :inlineSlot="true" />
</div>
</div> </div>
</div> </div>
</template> </template>
@@ -47,7 +45,7 @@ h1 {
.wines-container { .wines-container {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: space-between; justify-content: space-evenly;
margin: 0 2rem; margin: 0 2rem;
@media (min-width: 1500px) { @media (min-width: 1500px) {

View File

@@ -2,23 +2,18 @@
<div class="container"> <div class="container">
<div v-if="!posted"> <div v-if="!posted">
<h1 v-if="name">Gratulerer {{name}}!</h1> <h1 v-if="name">Gratulerer {{name}}!</h1>
<p <p v-if="name">
v-if="name" Her er valgene for dagens lotteri, du har 10 minutter å velge etter du fikk SMS-en.
>Her er valgene for dagens lotteri, du har 10 minutter å velge etter du fikk SMS-en.</p> </p>
<h1 v-else-if="!turn && !existing" class="sent-container">Finner ikke noen vinner her..</h1> <h1 v-else-if="!turn && !existing" class="sent-container">Finner ikke noen vinner her..</h1>
<h1 v-else-if="!turn" class="sent-container">Du vente tur..</h1> <h1 v-else-if="!turn" class="sent-container">Du vente tur..</h1>
<div class="wines-container" v-if="name"> <div class="wines-container" v-if="name">
<br /> <Wine :wine="wine" v-for="wine in wines" :key="wine">
<br /> <button
<Wine @click="chooseWine(wine.name)"
:wine="wine" class="vin-button select-wine"
v-for="wine in wines" >Velg denne vinnen</button>
:key="wine" </Wine>
:winner="true"
:fullscreen="true"
:inlineSlot="true"
v-on:chosen="chosenWine"
/>
</div> </div>
</div> </div>
<div v-else-if="posted" class="sent-container"> <div v-else-if="posted" class="sent-container">
@@ -64,7 +59,7 @@ export default {
this.wines = await _wines.json(); this.wines = await _wines.json();
}, },
methods: { methods: {
chosenWine: async function(name) { chooseWine: async function(name) {
let posted = await postWineChosen(this.id, name); let posted = await postWineChosen(this.id, name);
console.log("response", posted); console.log("response", posted);
if (posted.success) { if (posted.success) {
@@ -93,9 +88,14 @@ export default {
flex-direction: column; flex-direction: column;
} }
.select-wine {
margin-top: 1rem;
}
.wines-container { .wines-container {
justify-content: center;
display: flex; display: flex;
flex-direction: column; flex-wrap: wrap;
justify-content: space-evenly;
align-items: flex-start;
} }
</style> </style>