diff options
Diffstat (limited to 'src/modules/statuses.js')
| -rw-r--r-- | src/modules/statuses.js | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/modules/statuses.js b/src/modules/statuses.js index d6bdba65..eee368a3 100644 --- a/src/modules/statuses.js +++ b/src/modules/statuses.js @@ -1,5 +1,6 @@ import { map, slice, last, intersectionBy, sortBy, unionBy, toInteger, groupBy, differenceBy, each, find } from 'lodash' import moment from 'moment' +import apiService from '../services/api/api.service.js' const defaultState = { allStatuses: [], @@ -104,6 +105,18 @@ const updateTimestampsInStatuses = (statuses) => { const statuses = { state: defaultState, + actions: { + favorite ({ rootState, commit }, status) { + // Optimistic favoriting... + commit('setFavorited', { status, value: true }) + apiService.favorite({ id: status.id, credentials: rootState.users.currentUser.credentials }) + }, + unfavorite ({ rootState, commit }, status) { + // Optimistic favoriting... + commit('setFavorited', { status, value: false }) + apiService.unfavorite({ id: status.id, credentials: rootState.users.currentUser.credentials }) + } + }, mutations: { addNewStatuses (state, { statuses, showImmediately = false, timeline }) { state.timelines[timeline] = addStatusesToTimeline(statuses, showImmediately, state.timelines[timeline]) @@ -118,6 +131,10 @@ const statuses = { updateTimestamps (state) { updateTimestampsInStatuses(state.allStatuses) }, + setFavorited (state, { status, value }) { + const newStatus = find(state.allStatuses, status) + newStatus.favorited = value + }, setNsfw (state, { id, nsfw }) { // For now, walk through all the statuses because the stuff might be in the replied_to_status // TODO: Save the replied_tos as references. |
