- joined the processJoinRoom and joinRoom methods;
 - fixed some precisions miss;
 - removed some useless code;
 - change the error message height from absolute (40px) to relative (auto)
This commit is contained in:
Kaki In 2022-07-28 09:23:30 +02:00
parent 176caf340f
commit 3c64f7d49b
2 changed files with 10 additions and 21 deletions

View File

@ -199,40 +199,30 @@ export class RoomViewModel extends ViewModel {
} }
async joinRoom(roomName) { async joinRoom(roomName) {
}
async _processCommandJoin(roomName) {
try { try {
const roomId = await this._options.client.session.joinRoom(roomName); const roomId = await this._options.client.session.joinRoom(roomName);
const roomStatusObserver = await this._options.client.session.observeRoomStatus(roomId); const roomStatusObserver = await this._options.client.session.observeRoomStatus(roomId);
await roomStatusObserver.waitFor(status => status === RoomStatus.Joined); await roomStatusObserver.waitFor(status => status === RoomStatus.Joined);
this.navigation.push("room", roomId); this.navigation.push("room", roomId);
return true;
} catch (exc) { } catch (exc) {
if ((exc.statusCode ?? exc.status) === 400) { if ((exc.statusCode ?? exc.status) === 400) {
return `'${roomName}' was not legal room ID or room alias`; exc = new Error(`/join : '${roomName}' was not legal room ID or room alias`);
} else if ((exc.statusCode ?? exc.status) === 404 || (exc.statusCode ?? exc.status) === 502 || exc.message == "Internal Server Error") { } else if ((exc.statusCode ?? exc.status) === 404 || (exc.statusCode ?? exc.status) === 502 || exc.message == "Internal Server Error") {
return `room '${roomName}' not found`; exc = new Error(`/join : room '${roomName}' not found`);
} else if ((exc.statusCode ?? exc.status) === 403) { } else if ((exc.statusCode ?? exc.status) === 403) {
return `you're not invited to join '${roomName}'`; exc = new Error(`/join : you're not invited to join '${roomName}'`);
} else {
return exc;
} }
}
}
async _processCommandJoin(roomName) {
const exc = await this.joinRoom(roomName);
if (exc !== true) {
if (exc && exc.stack && exc.message) {
this._sendError = exc; this._sendError = exc;
} else {
this._sendError = new Error("/join : " + exc);
}
this._timelineError = null; this._timelineError = null;
this.emitChange("error"); this.emitChange("error");
} }
} }
async _processCommand (message) { async _processCommand (message) {
let msgtype = undefined; let msgtype;
const [commandName, ...args] = message.substring(1).split(" "); const [commandName, ...args] = message.substring(1).split(" ");
switch (commandName) { switch (commandName) {
case "me": case "me":
@ -269,7 +259,6 @@ export class RoomViewModel extends ViewModel {
this._sendError = new Error(`no command name "${commandName}". To send the message instead of executing, please type "/${message}"`); this._sendError = new Error(`no command name "${commandName}". To send the message instead of executing, please type "/${message}"`);
this._timelineError = null; this._timelineError = null;
this.emitChange("error"); this.emitChange("error");
msgtype = undefined;
message = undefined; message = undefined;
} }
return {type: msgtype, message: message}; return {type: msgtype, message: message};

View File

@ -539,7 +539,7 @@ a {
} }
.RoomView_error:not(:empty) { .RoomView_error:not(:empty) {
height : 40px; height : auto;
padding-top : 20px; padding-top : 20px;
padding-bottom : 20px; padding-bottom : 20px;
} }
@ -572,7 +572,7 @@ a {
content:"\274c"; content:"\274c";
position : absolute; position : absolute;
top : 15px; top : 15px;
left: 10px; left: 9px;
width : 20px; width : 20px;
height : 10px; height : 10px;
font-size : 10px; font-size : 10px;