diff options
| author | lambadalambda <gitgud@rogerbraun.net> | 2017-03-08 15:17:59 -0500 |
|---|---|---|
| committer | lambadalambda <gitgud@rogerbraun.net> | 2017-03-08 15:17:59 -0500 |
| commit | 5997492795d5cf2d0f575c65e87991348297cdf6 (patch) | |
| tree | b476bc166f7a5e90981ff236ebcd92a592dd000a /src/modules/users.js | |
| parent | ccbfc64bfcaf5efd598af6987e304291e23def1c (diff) | |
| parent | 0d39ed809b17dc7a3304f9a659c3d5e99d960f26 (diff) | |
Merge branch 'feature/performance' into 'develop'
Feature/performance
See merge request !50
Diffstat (limited to 'src/modules/users.js')
| -rw-r--r-- | src/modules/users.js | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/modules/users.js b/src/modules/users.js index 31731880..9367ec68 100644 --- a/src/modules/users.js +++ b/src/modules/users.js @@ -1,11 +1,11 @@ import backendInteractorService from '../services/backend_interactor_service/backend_interactor_service.js' -import { compact, map, each, find, merge } from 'lodash' +import { compact, map, each, merge } from 'lodash' import { set } from 'vue' // TODO: Unify with mergeOrAdd in statuses.js -export const mergeOrAdd = (arr, item) => { +export const mergeOrAdd = (arr, obj, item) => { if (!item) { return false } - const oldItem = find(arr, {id: item.id}) + const oldItem = obj[item.id] if (oldItem) { // We already have this, so only merge the new info. merge(oldItem, item) @@ -13,13 +13,14 @@ export const mergeOrAdd = (arr, item) => { } else { // This is a new item, prepare it arr.push(item) + obj[item.id] = item return {item, new: true} } } export const mutations = { setMuted (state, { user: {id}, muted }) { - const user = find(state.users, {id}) + const user = state.usersObject[id] set(user, 'muted', muted) }, setCurrentUser (state, user) { @@ -32,17 +33,18 @@ export const mutations = { state.loggingIn = false }, addNewUsers (state, users) { - each(users, (user) => mergeOrAdd(state.users, user)) + each(users, (user) => mergeOrAdd(state.users, state.usersObject, user)) }, setUserForStatus (state, status) { - status.user = find(state.users, status.user) + status.user = state.usersObject[status.user.id] } } export const defaultState = { currentUser: false, loggingIn: false, - users: [] + users: [], + usersObject: {} } const users = { |
