Make reading settings synchronous
Signed-off-by: Travis Ralston <travpc@gmail.com>
This commit is contained in:
parent
989bdcf5fb
commit
23d159e21c
9 changed files with 56 additions and 71 deletions
|
@ -23,18 +23,13 @@ import MatrixClientPeg from '../MatrixClientPeg';
|
|||
*/
|
||||
export default class RoomAccountSettingsHandler extends SettingsHandler {
|
||||
getValue(settingName, roomId) {
|
||||
const room = MatrixClientPeg.get().getRoom(roomId);
|
||||
if (!room) return Promise.reject();
|
||||
|
||||
const value = room.getAccountData(this._getEventType(settingName));
|
||||
if (!value) return Promise.reject();
|
||||
return Promise.resolve(value);
|
||||
return this._getSettings(roomId)[settingName];
|
||||
}
|
||||
|
||||
setValue(settingName, roomId, newValue) {
|
||||
return MatrixClientPeg.get().setRoomAccountData(
|
||||
roomId, this._getEventType(settingName), newValue
|
||||
);
|
||||
const content = this._getSettings(roomId);
|
||||
content[settingName] = newValue;
|
||||
return MatrixClientPeg.get().setRoomAccountData(roomId, "im.vector.web.settings", content);
|
||||
}
|
||||
|
||||
canSetValue(settingName, roomId) {
|
||||
|
@ -46,7 +41,12 @@ export default class RoomAccountSettingsHandler extends SettingsHandler {
|
|||
return !!MatrixClientPeg.get();
|
||||
}
|
||||
|
||||
_getEventType(settingName) {
|
||||
return "im.vector.setting." + settingName;
|
||||
_getSettings(roomId) {
|
||||
const room = MatrixClientPeg.get().getRoom(roomId);
|
||||
if (!room) return {};
|
||||
|
||||
const event = room.getAccountData("im.vector.settings");
|
||||
if (!event || !event.getContent()) return {};
|
||||
return event.getContent();
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue