This commit is contained in:
j3d1 2026-08-22 23:29:02 +02:00
parent 3299c97392
commit de7d9426be
10 changed files with 259 additions and 99 deletions

View file

@ -74,6 +74,7 @@ export default createStore({
friendProfiles: {},
groups: [],
groupInvites: [],
idmap: {identities: [], groups: []},
item_map: {},
home_servers: null,
all_friends_servers: null,
@ -112,6 +113,9 @@ export default createStore({
setGroupInvites(state, invites) {
state.groupInvites = invites;
},
setIdMap(state, idmap) {
state.idmap = idmap;
},
setHomeServers(state, home_servers) {
state.home_servers = home_servers;
},
@ -498,6 +502,12 @@ export default createStore({
commit('setGroups', data)
return data
},
async fetchIdMap({commit, dispatch, getters}) {
const servers = await dispatch('getHomeServers')
const idmap = await servers.get(getters.signAuth, '/api/idmap/')
commit('setIdMap', idmap)
return idmap
},
async fetchGroup({dispatch, getters}, {id}) {
const servers = await dispatch('getHomeServers')
return await servers.get(getters.signAuth, '/api/groups/' + id + '/')
@ -786,6 +796,12 @@ export default createStore({
return state.item_map['/'] || []
},
groupInventoryItems: (state) => (groupId) => state.item_map['/group/' + groupId] || [],
identityIdByHandle(state) {
return Object.fromEntries(state.idmap.identities.map(i => [i.username, i.id]))
},
groupIdByHandle(state) {
return Object.fromEntries(state.idmap.groups.map(g => [g.handle, g.id]))
},
loaded_items(state) {
return Object.entries(state.item_map).reduce((acc, [url, items]) => {
return acc.concat(items)