support channel names with slash in name/alias

Signed-off-by: Jan Gerber <j@mailb.org>
pull/21833/head
j 2019-12-24 15:06:50 +01:00
parent 8c70eda517
commit 9eed423994
1 changed files with 11 additions and 3 deletions

View File

@ -1569,9 +1569,17 @@ export default createReactClass({
action: 'start_post_registration', action: 'start_post_registration',
}); });
} else if (screen.indexOf('room/') == 0) { } else if (screen.indexOf('room/') == 0) {
const segments = screen.substring(5).split('/'); // Rooms can have the following formats:
const roomString = segments[0]; // #room_alias:domain or !opaque_id:domain
let eventId = segments.splice(1).join("/"); // empty string if no event id given const room = screen.substring(5);
const domainOffset = room.indexOf(':') + 1; // 0 in case room does not contain a :
let eventOffset = room.length;
// room aliases can contain slashes only look for slash after domain
if (room.substring(domainOffset).indexOf('/') > -1) {
eventOffset = domainOffset + room.substring(domainOffset).indexOf('/');
}
const roomString = room.substring(0, eventOffset);
let eventId = room.substring(eventOffset + 1); // empty string if no event id given
// Previously we pulled the eventID from the segments in such a way // Previously we pulled the eventID from the segments in such a way
// where if there was no eventId then we'd get undefined. However, we // where if there was no eventId then we'd get undefined. However, we