refs #58 Unfavourite on toot

This commit is contained in:
AkiraFukushima 2018-03-14 17:35:44 +09:00
parent 7bc3440dc1
commit 66ba295f4d
2 changed files with 33 additions and 8 deletions

View File

@ -16,7 +16,7 @@
<div class="tool-box">
<el-button type="text"><icon name="reply" scale="0.9"></icon></el-button>
<el-button type="text"><icon name="retweet" scale="0.9"></icon></el-button>
<el-button type="text" @click="addFavourite(message)" :class="message.favourited ? 'favourited' : ''"><icon name="star" scale="0.9"></icon></el-button>
<el-button type="text" @click="changeFavourite(message)" :class="message.favourited ? 'favourited' : ''"><icon name="star" scale="0.9"></icon></el-button>
</div>
</div>
<div class="clearfix"></div>
@ -41,14 +41,24 @@ export default {
shell.openExternal(link)
}
},
addFavourite (message) {
this.$store.dispatch('TimelineSpace/Cards/Toot/addFavourite', message)
.catch(() => {
this.$message({
message: 'Failed to favourite',
type: 'error'
changeFavourite (message) {
if (message.favourited) {
this.$store.dispatch('TimelineSpace/Cards/Toot/removeFavourite', message)
.catch(() => {
this.$message({
message: 'Failed to unfavourite',
type: 'error'
})
})
})
} else {
this.$store.dispatch('TimelineSpace/Cards/Toot/addFavourite', message)
.catch(() => {
this.$message({
message: 'Failed to favourite',
type: 'error'
})
})
}
}
}
}

View File

@ -19,6 +19,21 @@ const Toot = {
resolve(res)
})
})
},
removeFavourite ({ state, commit, rootState }, message) {
return new Promise((resolve, reject) => {
const client = new Mastodon(
{
access_token: rootState.TimelineSpace.account.accessToken,
api_url: rootState.TimelineSpace.account.baseURL + '/api/v1'
}
)
client.post(`/statuses/${message.id}/unfavourite`, {}, (err, data, res) => {
if (err) return reject(err)
// TODO: update toot data
resolve(res)
})
})
}
}
}