Merge pull request #5451 from iokiwi/new/room-alias-in-permalink

Use room alias in generated permalink for rooms
pull/21833/head
Travis Ralston 2020-12-09 12:07:44 -07:00 committed by GitHub
commit af69ba9c79
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 1 deletions

View File

@ -146,7 +146,7 @@ export default class ShareDialog extends React.PureComponent<IProps, IState> {
const events = this.props.target.getLiveTimeline().getEvents();
matrixToUrl = this.state.permalinkCreator.forEvent(events[events.length - 1].getId());
} else {
matrixToUrl = this.state.permalinkCreator.forRoom();
matrixToUrl = this.state.permalinkCreator.forShareableRoom();
}
} else if (this.props.target instanceof User || this.props.target instanceof RoomMember) {
matrixToUrl = makeUserPermalink(this.props.target.userId);

View File

@ -129,6 +129,17 @@ export class RoomPermalinkCreator {
return getPermalinkConstructor().forEvent(this._roomId, eventId, this._serverCandidates);
}
forShareableRoom() {
if (this._room) {
// Prefer to use canonical alias for permalink if possible
const alias = this._room.getCanonicalAlias();
if (alias) {
return getPermalinkConstructor().forRoom(alias, this._serverCandidates);
}
}
return getPermalinkConstructor().forRoom(this._roomId, this._serverCandidates);
}
forRoom() {
return getPermalinkConstructor().forRoom(this._roomId, this._serverCandidates);
}

View File

@ -34,6 +34,7 @@ function mockRoom(roomId, members, serverACL) {
return {
roomId,
getCanonicalAlias: () => roomId,
getJoinedMembers: () => members,
getMember: (userId) => members.find(m => m.userId === userId),
currentState: {