mirror of
https://github.com/element-hq/element-web
synced 2024-11-25 02:35:48 +03:00
Fix onNewScreen to use replace when going from roomId->roomAlias to prevent locking the user in place
This commit is contained in:
parent
62556c2afe
commit
c26f3b8a97
1 changed files with 7 additions and 4 deletions
|
@ -147,7 +147,7 @@ interface IProps { // TODO type things better
|
||||||
config: Record<string, any>;
|
config: Record<string, any>;
|
||||||
serverConfig?: ValidatedServerConfig;
|
serverConfig?: ValidatedServerConfig;
|
||||||
ConferenceHandler?: any;
|
ConferenceHandler?: any;
|
||||||
onNewScreen: (string) => void;
|
onNewScreen: (screen: string, replaceLast: boolean) => void;
|
||||||
enableGuest?: boolean;
|
enableGuest?: boolean;
|
||||||
// the queryParams extracted from the [real] query-string of the URI
|
// the queryParams extracted from the [real] query-string of the URI
|
||||||
realQueryParams?: Record<string, string>;
|
realQueryParams?: Record<string, string>;
|
||||||
|
@ -886,6 +886,9 @@ export default class MatrixChat extends React.PureComponent<IProps, IState> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If we are redirecting to a Room Alias and it is for the room we already showing then replace history item
|
||||||
|
const replaceLast = presentedId[0] === "#" && roomInfo.room_id === this.state.currentRoomId;
|
||||||
|
|
||||||
if (roomInfo.event_id && roomInfo.highlighted) {
|
if (roomInfo.event_id && roomInfo.highlighted) {
|
||||||
presentedId += "/" + roomInfo.event_id;
|
presentedId += "/" + roomInfo.event_id;
|
||||||
}
|
}
|
||||||
|
@ -898,7 +901,7 @@ export default class MatrixChat extends React.PureComponent<IProps, IState> {
|
||||||
viaServers: roomInfo.via_servers,
|
viaServers: roomInfo.via_servers,
|
||||||
ready: true,
|
ready: true,
|
||||||
}, () => {
|
}, () => {
|
||||||
this.notifyNewScreen('room/' + presentedId);
|
this.notifyNewScreen('room/' + presentedId, replaceLast);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -1699,9 +1702,9 @@ export default class MatrixChat extends React.PureComponent<IProps, IState> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
notifyNewScreen(screen: string) {
|
notifyNewScreen(screen: string, replaceLast = false) {
|
||||||
if (this.props.onNewScreen) {
|
if (this.props.onNewScreen) {
|
||||||
this.props.onNewScreen(screen);
|
this.props.onNewScreen(screen, replaceLast);
|
||||||
}
|
}
|
||||||
this.setPageSubtitle();
|
this.setPageSubtitle();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue