Merge pull request #5451 from iokiwi/new/room-alias-in-permalink
Use room alias in generated permalink for roomspull/21833/head
commit
af69ba9c79
|
@ -146,7 +146,7 @@ export default class ShareDialog extends React.PureComponent<IProps, IState> {
|
||||||
const events = this.props.target.getLiveTimeline().getEvents();
|
const events = this.props.target.getLiveTimeline().getEvents();
|
||||||
matrixToUrl = this.state.permalinkCreator.forEvent(events[events.length - 1].getId());
|
matrixToUrl = this.state.permalinkCreator.forEvent(events[events.length - 1].getId());
|
||||||
} else {
|
} else {
|
||||||
matrixToUrl = this.state.permalinkCreator.forRoom();
|
matrixToUrl = this.state.permalinkCreator.forShareableRoom();
|
||||||
}
|
}
|
||||||
} else if (this.props.target instanceof User || this.props.target instanceof RoomMember) {
|
} else if (this.props.target instanceof User || this.props.target instanceof RoomMember) {
|
||||||
matrixToUrl = makeUserPermalink(this.props.target.userId);
|
matrixToUrl = makeUserPermalink(this.props.target.userId);
|
||||||
|
|
|
@ -129,6 +129,17 @@ export class RoomPermalinkCreator {
|
||||||
return getPermalinkConstructor().forEvent(this._roomId, eventId, this._serverCandidates);
|
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() {
|
forRoom() {
|
||||||
return getPermalinkConstructor().forRoom(this._roomId, this._serverCandidates);
|
return getPermalinkConstructor().forRoom(this._roomId, this._serverCandidates);
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,6 +34,7 @@ function mockRoom(roomId, members, serverACL) {
|
||||||
|
|
||||||
return {
|
return {
|
||||||
roomId,
|
roomId,
|
||||||
|
getCanonicalAlias: () => roomId,
|
||||||
getJoinedMembers: () => members,
|
getJoinedMembers: () => members,
|
||||||
getMember: (userId) => members.find(m => m.userId === userId),
|
getMember: (userId) => members.find(m => m.userId === userId),
|
||||||
currentState: {
|
currentState: {
|
||||||
|
|
Loading…
Reference in New Issue