aboutsummaryrefslogtreecommitdiff
path: root/src/modules
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/instance.js2
-rw-r--r--src/modules/statuses.js2
-rw-r--r--src/modules/users.js57
3 files changed, 52 insertions, 9 deletions
diff --git a/src/modules/instance.js b/src/modules/instance.js
index 59c6b91c..c31d02b9 100644
--- a/src/modules/instance.js
+++ b/src/modules/instance.js
@@ -21,7 +21,7 @@ const defaultState = {
collapseMessageWithSubject: false,
hidePostStats: false,
hideUserStats: false,
- hideFilteredStatuses: true,
+ hideFilteredStatuses: false,
disableChat: false,
scopeCopy: true,
subjectLineBehavior: 'email',
diff --git a/src/modules/statuses.js b/src/modules/statuses.js
index 46117fd7..fd850d1a 100644
--- a/src/modules/statuses.js
+++ b/src/modules/statuses.js
@@ -126,7 +126,7 @@ const addNewStatuses = (state, { statuses, showImmediately = false, timeline, us
// This makes sure that user timeline won't get data meant for other
// user. I.e. opening different user profiles makes request which could
// return data late after user already viewing different user profile
- if (timeline === 'user' && timelineObject.userId !== userId) {
+ if ((timeline === 'user' || timeline === 'media') && timelineObject.userId !== userId) {
return
}
diff --git a/src/modules/users.js b/src/modules/users.js
index 4d56ec6f..77df7168 100644
--- a/src/modules/users.js
+++ b/src/modules/users.js
@@ -85,6 +85,12 @@ export const mutations = {
addNewUsers (state, users) {
each(users, (user) => mergeOrAdd(state.users, state.usersObject, user))
},
+ saveBlocks (state, blockIds) {
+ state.currentUser.blockIds = blockIds
+ },
+ saveMutes (state, muteIds) {
+ state.currentUser.muteIds = muteIds
+ },
setUserForStatus (state, status) {
status.user = state.usersObject[status.user.id]
},
@@ -137,6 +143,38 @@ const users = {
store.rootState.api.backendInteractor.fetchUser({ id })
.then((user) => store.commit('addNewUsers', [user]))
},
+ fetchBlocks (store) {
+ return store.rootState.api.backendInteractor.fetchBlocks()
+ .then((blocks) => {
+ store.commit('saveBlocks', map(blocks, 'id'))
+ store.commit('addNewUsers', blocks)
+ return blocks
+ })
+ },
+ blockUser (store, id) {
+ return store.rootState.api.backendInteractor.blockUser(id)
+ .then((user) => store.commit('addNewUsers', [user]))
+ },
+ unblockUser (store, id) {
+ return store.rootState.api.backendInteractor.unblockUser(id)
+ .then((user) => store.commit('addNewUsers', [user]))
+ },
+ fetchMutes (store) {
+ return store.rootState.api.backendInteractor.fetchMutes()
+ .then((mutedUsers) => {
+ each(mutedUsers, (user) => { user.muted = true })
+ store.commit('addNewUsers', mutedUsers)
+ store.commit('saveMutes', map(mutedUsers, 'id'))
+ })
+ },
+ muteUser (store, id) {
+ return store.state.api.backendInteractor.setUserMute({ id, muted: true })
+ .then((user) => store.commit('addNewUsers', [user]))
+ },
+ unmuteUser (store, id) {
+ return store.state.api.backendInteractor.setUserMute({ id, muted: false })
+ .then((user) => store.commit('addNewUsers', [user]))
+ },
addFriends ({ rootState, commit }, fetchBy) {
return new Promise((resolve, reject) => {
const user = rootState.users.usersObject[fetchBy]
@@ -231,8 +269,14 @@ const users = {
store.commit('setToken', result.access_token)
store.dispatch('loginUser', result.access_token)
} else {
- let data = await response.json()
- let errors = humanizeErrors(JSON.parse(data.error))
+ const data = await response.json()
+ let errors = JSON.parse(data.error)
+ // replace ap_id with username
+ if (errors.ap_id) {
+ errors.username = errors.ap_id
+ delete errors.ap_id
+ }
+ errors = humanizeErrors(errors)
store.commit('signUpFailure', errors)
throw Error(errors)
}
@@ -257,6 +301,8 @@ const users = {
const user = data
// user.credentials = userCredentials
user.credentials = accessToken
+ user.blockIds = []
+ user.muteIds = []
commit('setCurrentUser', user)
commit('addNewUsers', [user])
@@ -273,11 +319,8 @@ const users = {
// Start getting fresh posts.
store.dispatch('startFetching', { timeline: 'friends' })
- // Get user mutes and follower info
- store.rootState.api.backendInteractor.fetchMutes().then((mutedUsers) => {
- each(mutedUsers, (user) => { user.muted = true })
- store.commit('addNewUsers', mutedUsers)
- })
+ // Get user mutes
+ store.dispatch('fetchMutes')
// Fetch our friends
store.rootState.api.backendInteractor.fetchFriends({ id: user.id })