diff options
| author | shpuld <shp@cock.li> | 2019-03-23 22:21:57 +0200 |
|---|---|---|
| committer | shpuld <shp@cock.li> | 2019-03-23 22:21:57 +0200 |
| commit | fd12263cacd2a869ad61dd8580f918b45d9b2a51 (patch) | |
| tree | c70c4e548923d97893ab6a875cc354cd6895f8e8 /src/modules/users.js | |
| parent | 85584021fb1042a8934945d73f7d25b38f1c29d1 (diff) | |
| parent | f86a5dc80421f496a893efaa98f12f831da0adcb (diff) | |
merge develop in
Diffstat (limited to 'src/modules/users.js')
| -rw-r--r-- | src/modules/users.js | 36 |
1 files changed, 28 insertions, 8 deletions
diff --git a/src/modules/users.js b/src/modules/users.js index 26884750..1fe12fc8 100644 --- a/src/modules/users.js +++ b/src/modules/users.js @@ -18,7 +18,7 @@ export const mergeOrAdd = (arr, obj, item) => { arr.push(item) obj[item.id] = item if (item.screen_name && !item.screen_name.includes('@')) { - obj[item.screen_name] = item + obj[item.screen_name.toLowerCase()] = item } return { item, new: true } } @@ -91,6 +91,17 @@ export const mutations = { addNewUsers (state, users) { each(users, (user) => mergeOrAdd(state.users, state.usersObject, user)) }, + updateUserRelationship (state, relationships) { + relationships.forEach((relationship) => { + const user = state.usersObject[relationship.id] + if (user) { + user.follows_you = relationship.followed_by + user.following = relationship.following + user.muted = relationship.muting + user.statusnet_blocking = relationship.blocking + } + }) + }, saveBlocks (state, blockIds) { state.currentUser.blockIds = blockIds }, @@ -122,12 +133,14 @@ export const mutations = { } export const getters = { - userById: state => id => - state.users.find(user => user.id === id), - userByName: state => name => - state.users.find(user => user.screen_name && - (user.screen_name.toLowerCase() === name.toLowerCase()) - ) + findUser: state => query => { + const result = state.usersObject[query] + // In case it's a screen_name, we can try searching case-insensitive + if (!result && typeof query === 'string') { + return state.usersObject[query.toLowerCase()] + } + return result + } } export const defaultState = { @@ -147,7 +160,14 @@ const users = { actions: { fetchUser (store, id) { return store.rootState.api.backendInteractor.fetchUser({ id }) - .then((user) => store.commit('addNewUsers', [user])) + .then((user) => { + store.commit('addNewUsers', [user]) + return user + }) + }, + fetchUserRelationship (store, id) { + return store.rootState.api.backendInteractor.fetchUserRelationship({ id }) + .then((relationships) => store.commit('updateUserRelationship', relationships)) }, fetchBlocks (store) { return store.rootState.api.backendInteractor.fetchBlocks() |
