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: {