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

Use room alias in generated permalink for rooms
This commit is contained in:
Travis Ralston
2020-12-09 12:07:44 -07:00
committed by GitHub
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);
}