mirror of
https://github.com/cinnyapp/cinny.git
synced 2025-11-08 16:20:28 +03:00
Move space shortcut from roomlist to accountdata
Signed-off-by: Ajay Bura <ajbura@gmail.com>
This commit is contained in:
parent
7db674b65d
commit
a62df536dd
10 changed files with 131 additions and 77 deletions
|
|
@ -16,8 +16,6 @@ class RoomList extends EventEmitter {
|
|||
// No matter if you have joined those children rooms or not.
|
||||
this.roomIdToParents = new Map();
|
||||
|
||||
this.spaceShortcut = new Set();
|
||||
|
||||
this.inviteDirects = new Set();
|
||||
this.inviteSpaces = new Set();
|
||||
this.inviteRooms = new Set();
|
||||
|
|
@ -29,18 +27,11 @@ class RoomList extends EventEmitter {
|
|||
this.processingRooms = new Map();
|
||||
|
||||
this._populateRooms();
|
||||
this._populateSpaceShortcut();
|
||||
this._listenEvents();
|
||||
|
||||
appDispatcher.register(this.roomActions.bind(this));
|
||||
}
|
||||
|
||||
_updateSpaceShortcutData(shortcutList) {
|
||||
const spaceContent = this.matrixClient.getAccountData(cons['in.cinny.spaces'])?.getContent() || {};
|
||||
spaceContent.shortcut = shortcutList;
|
||||
this.matrixClient.setAccountData(cons['in.cinny.spaces'], spaceContent);
|
||||
}
|
||||
|
||||
isOrphan(roomId) {
|
||||
return !this.roomIdToParents.has(roomId);
|
||||
}
|
||||
|
|
@ -103,12 +94,6 @@ class RoomList extends EventEmitter {
|
|||
spaceChildren?.forEach((childRoomId) => {
|
||||
this.removeFromRoomIdToParents(childRoomId, roomId);
|
||||
});
|
||||
|
||||
if (this.spaceShortcut.has(roomId)) {
|
||||
// if delete space has shortcut remove it.
|
||||
this.spaceShortcut.delete(roomId);
|
||||
this._updateSpaceShortcutData([...this.spaceShortcut]);
|
||||
}
|
||||
}
|
||||
|
||||
roomActions(action) {
|
||||
|
|
@ -151,18 +136,6 @@ class RoomList extends EventEmitter {
|
|||
});
|
||||
}
|
||||
},
|
||||
[cons.actions.room.CREATE_SPACE_SHORTCUT]: () => {
|
||||
if (this.spaceShortcut.has(action.roomId)) return;
|
||||
this.spaceShortcut.add(action.roomId);
|
||||
this._updateSpaceShortcutData([...this.spaceShortcut]);
|
||||
this.emit(cons.events.roomList.SPACE_SHORTCUT_UPDATED, action.roomId);
|
||||
},
|
||||
[cons.actions.room.DELETE_SPACE_SHORTCUT]: () => {
|
||||
if (!this.spaceShortcut.has(action.roomId)) return;
|
||||
this.spaceShortcut.delete(action.roomId);
|
||||
this._updateSpaceShortcutData([...this.spaceShortcut]);
|
||||
this.emit(cons.events.roomList.SPACE_SHORTCUT_UPDATED, action.roomId);
|
||||
},
|
||||
};
|
||||
actions[action.type]?.();
|
||||
}
|
||||
|
|
@ -182,21 +155,6 @@ class RoomList extends EventEmitter {
|
|||
return mDirectsId;
|
||||
}
|
||||
|
||||
_populateSpaceShortcut() {
|
||||
this.spaceShortcut.clear();
|
||||
const spacesContent = this.matrixClient.getAccountData(cons['in.cinny.spaces'])?.getContent();
|
||||
|
||||
if (spacesContent && Array.isArray(spacesContent?.shortcut)) {
|
||||
spacesContent.shortcut.forEach((shortcut) => {
|
||||
if (this.spaces.has(shortcut)) this.spaceShortcut.add(shortcut);
|
||||
});
|
||||
if (spacesContent.shortcut.length !== this.spaceShortcut.size) {
|
||||
// update shortcut list from account data if shortcut space doesn't exist.
|
||||
this._updateSpaceShortcutData([...this.spaceShortcut]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_populateRooms() {
|
||||
this.directs.clear();
|
||||
this.roomIdToParents.clear();
|
||||
|
|
@ -238,12 +196,6 @@ class RoomList extends EventEmitter {
|
|||
_listenEvents() {
|
||||
// Update roomList when m.direct changes
|
||||
this.matrixClient.on('accountData', (event) => {
|
||||
if (event.getType() === cons['in.cinny.spaces']) {
|
||||
this._populateSpaceShortcut();
|
||||
this.emit(cons.events.roomList.SPACE_SHORTCUT_UPDATED);
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.getType() !== 'm.direct') return;
|
||||
|
||||
const latestMDirects = this.getMDirects();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue