Skip to content

Commit 3366461

Browse files
authored
Merge pull request #12 from ITCreate/feat/add-stock-logic-toswipe-page
スワイプ時の好き嫌いデータをメモリ内変数に保存する
2 parents 397c3d6 + 8eda2d6 commit 3366461

File tree

1 file changed

+44
-23
lines changed

1 file changed

+44
-23
lines changed

pages/swipe.vue

Lines changed: 44 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -40,21 +40,21 @@
4040
<div class="swipe-button">
4141
<img
4242
src="~/assets/images/nope.png"
43-
@click="decide('nope'); cantEat();"
43+
@click="decide('nope')"
4444
>
4545
<span>食べれない</span>
4646
</div>
4747
<div class="swipe-button">
4848
<img
4949
src="~/assets/images/super-like.png"
50-
@click="decide('super'); canEat();"
50+
@click="decide('super')"
5151
>
5252
<span>好きなもの</span>
5353
</div>
5454
<div class="swipe-button">
5555
<img
5656
src="~/assets/images/like.png"
57-
@click="decide('like'); canEat();"
57+
@click="decide('like')"
5858
>
5959
<span>食べれる</span>
6060
</div>
@@ -71,28 +71,31 @@ export default {
7171
VueTinder,
7272
},
7373
data: () => ({
74-
alcoholicBeverage: {},
7574
nibbles: [],
7675
queue: [],
76+
requestPayload: {
77+
alcoholicBeverageId: null,
78+
selectNibbles: [],
79+
},
7780
offset: 0,
7881
}),
7982
created() {
80-
this.getAlcoholicBeverage();
83+
this.requestPayload.alcoholicBeverageId = this.$route.params.alcoholicBeverage;
84+
8185
this.fetchNibbles();
8286
},
8387
methods: {
84-
getAlcoholicBeverage() {
85-
this.alcoholicBeverage = this.$route.params.alcoholicBeverage;
86-
},
88+
// FIXME: asyncDataでとったほうが良さそう
8789
async fetchNibbles() {
88-
await this.$axios.get("/nibbles").then(res => {
90+
await this.$axios.get("/nibbles").then((res) => {
8991
this.nibbles = res.data;
9092
this.mock();
9193
});
9294
},
9395
mock() {
9496
const list = [];
9597
const nibbles = this.nibbles;
98+
9699
for (let i = 0; i < nibbles.length + 1; i++) {
97100
list.push({
98101
id:
@@ -112,29 +115,47 @@ export default {
112115
}
113116
this.queue = this.queue.concat(list);
114117
},
115-
onSubmit({ item }) {
116-
this.saveSwipe(item, "食べれるか食べられへんかみたいなステータス取って渡したいけどやり方が分からん");
118+
onSubmit({ type, item }) {
119+
this.saveSwipe(type, item);
120+
117121
if (this.canMoveResult()) {
118-
// スワイプ情報も遷移先に渡すようにする
119-
this.$router.push({ name: "results", params: {
120-
swipes: "スワイプ情報がここに入ります"
121-
} });
122+
// 遷移がいきなりおきるのはびっくりするのでちょっと待つ
123+
setTimeout(() => {
124+
// スワイプ情報も遷移先に渡すようにする
125+
this.$router.push({
126+
name: "results",
127+
params: {
128+
swipes: this.requestPayload,
129+
},
130+
});
131+
}, 1000);
122132
}
133+
123134
if (this.queue.length < 3) {
124135
this.mock();
125136
}
126137
},
127138
decide(choice) {
139+
// これを呼ぶと、VueTinderコンポーネントの @submit イベントが自動的に発火するので、onSubmit内でtypeとitem受け取ればOK
128140
this.$refs.tinder.decide(choice);
129141
},
130-
canEat() {
131-
this.saveSwipe(item, "食べれるか食べられへんかみたいなステータス取って渡したいけどやり方が分からん");
132-
},
133-
cantEat() {
134-
this.saveSwipe(item, "食べれるか食べられへんかみたいなステータス取って渡したいけどやり方が分からん");
135-
},
136-
saveSwipe(item, status) {
137-
// ゴニョる
142+
saveSwipe(type, item) {
143+
if (type === "like") {
144+
this.requestPayload.selectNibbles.push({
145+
id: item.id,
146+
likeLevel: 1,
147+
});
148+
} else if (type === "super") {
149+
this.requestPayload.selectNibbles.push({
150+
id: item.id,
151+
likeLevel: 2,
152+
});
153+
} else {
154+
this.requestPayload.selectNibbles.push({
155+
id: item.id,
156+
likeLevel: 0,
157+
});
158+
}
138159
},
139160
canMoveResult() {
140161
return this.queue

0 commit comments

Comments
 (0)