Use cache to quickly access users.
This commit is contained in:
parent
bde1241843
commit
480a1ba253
2 changed files with 14 additions and 5 deletions
|
@ -3,9 +3,9 @@ import { compact, map, each, find, 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,6 +13,7 @@ export const mergeOrAdd = (arr, item) => {
|
|||
} else {
|
||||
// This is a new item, prepare it
|
||||
arr.push(item)
|
||||
obj[item.id] = item
|
||||
return {item, new: true}
|
||||
}
|
||||
}
|
||||
|
@ -32,7 +33,7 @@ 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)
|
||||
|
@ -42,7 +43,8 @@ export const mutations = {
|
|||
export const defaultState = {
|
||||
currentUser: false,
|
||||
loggingIn: false,
|
||||
users: []
|
||||
users: [],
|
||||
usersObject: {}
|
||||
}
|
||||
|
||||
const users = {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue