From b4ffccf27caa70984d0c042483e83b4ec5f5ab98 Mon Sep 17 00:00:00 2001
From: AkiraFukushima
Date: Wed, 14 Mar 2018 18:08:07 +0900
Subject: [PATCH] refs #62 Update favourited status in favourites
---
src/renderer/components/TimelineSpace/Cards/Toot.vue | 6 ++++++
src/renderer/components/TimelineSpace/Favourites.vue | 7 ++++++-
src/renderer/store/TimelineSpace/Cards/Toot.js | 4 ++--
src/renderer/store/TimelineSpace/Favourites.js | 9 +++++++++
4 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/src/renderer/components/TimelineSpace/Cards/Toot.vue b/src/renderer/components/TimelineSpace/Cards/Toot.vue
index 8b689735..94fb320b 100644
--- a/src/renderer/components/TimelineSpace/Cards/Toot.vue
+++ b/src/renderer/components/TimelineSpace/Cards/Toot.vue
@@ -44,6 +44,9 @@ export default {
changeFavourite (message) {
if (message.favourited) {
this.$store.dispatch('TimelineSpace/Cards/Toot/removeFavourite', message)
+ .then((data) => {
+ this.$emit('update', data)
+ })
.catch(() => {
this.$message({
message: 'Failed to unfavourite',
@@ -52,6 +55,9 @@ export default {
})
} else {
this.$store.dispatch('TimelineSpace/Cards/Toot/addFavourite', message)
+ .then((data) => {
+ this.$emit('update', data)
+ })
.catch(() => {
this.$message({
message: 'Failed to favourite',
diff --git a/src/renderer/components/TimelineSpace/Favourites.vue b/src/renderer/components/TimelineSpace/Favourites.vue
index 9792a3e4..821f0c9f 100644
--- a/src/renderer/components/TimelineSpace/Favourites.vue
+++ b/src/renderer/components/TimelineSpace/Favourites.vue
@@ -1,7 +1,7 @@
@@ -37,6 +37,11 @@ export default {
type: 'error'
})
})
+ },
+ methods: {
+ updateToot (message) {
+ this.$store.commit('TimelineSpace/Favourites/updateToot', message)
+ }
}
}
diff --git a/src/renderer/store/TimelineSpace/Cards/Toot.js b/src/renderer/store/TimelineSpace/Cards/Toot.js
index a268703c..5a1d3a8c 100644
--- a/src/renderer/store/TimelineSpace/Cards/Toot.js
+++ b/src/renderer/store/TimelineSpace/Cards/Toot.js
@@ -16,7 +16,7 @@ const Toot = {
client.post(`/statuses/${message.id}/favourite`, {}, (err, data, res) => {
if (err) return reject(err)
commit('TimelineSpace/updateToot', data, { root: true })
- resolve(res)
+ resolve(data)
})
})
},
@@ -31,7 +31,7 @@ const Toot = {
client.post(`/statuses/${message.id}/unfavourite`, {}, (err, data, res) => {
if (err) return reject(err)
commit('TimelineSpace/updateToot', data, { root: true })
- resolve(res)
+ resolve(data)
})
})
}
diff --git a/src/renderer/store/TimelineSpace/Favourites.js b/src/renderer/store/TimelineSpace/Favourites.js
index d1ca087b..08bcf605 100644
--- a/src/renderer/store/TimelineSpace/Favourites.js
+++ b/src/renderer/store/TimelineSpace/Favourites.js
@@ -8,6 +8,15 @@ const Favourites = {
mutations: {
insertFavourites (state, favourites) {
state.favourites = favourites
+ },
+ updateToot (state, message) {
+ state.favourites = state.favourites.map((toot) => {
+ if (toot.id === message.id) {
+ return message
+ } else {
+ return toot
+ }
+ })
}
},
actions: {