Show a tile for an unloaded predecessor room if it has via_servers (#10483)
* Improve typing in constructor of RoomPermalinkCreator * Provide via servers if present when navigating to predecessor room from Advanced Room Settings * Show an error tile when the predecessor room is not found * Test for MatrixToPermalinkConstructor.forRoom * Test for MatrixToPermalinkConstructor.forEvent * Display a tile for predecessor event if it contains via servers * Fix missing case where event id is provided as well as via servers * Refactor RoomPredecessor tests * Return lost filterConsole to its home * Comments for IState in AdvancedRoomSettingsTab * Explain why we might render a tile even without prevRoom * Guess the old room's via servers if they are not provided * Fix TypeScript errors * Adjust regular expression (hopefully) to avoid potential catastrophic backtracking * Another attempt at avoiding super-liner regex performance * Tests for guessServerNameFromRoomId and better implementation * Further attempt to prevent backtracking --------- Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
This commit is contained in:
parent
075cb9e622
commit
c496985ff3
8 changed files with 320 additions and 89 deletions
|
@ -42,8 +42,16 @@ interface IRecommendedVersion {
|
|||
interface IState {
|
||||
// This is eventually set to the value of room.getRecommendedVersion()
|
||||
upgradeRecommendation?: IRecommendedVersion;
|
||||
|
||||
/** The room ID of this room's predecessor, if it exists. */
|
||||
oldRoomId?: string;
|
||||
|
||||
/** The ID of tombstone event in this room's predecessor, if it exists. */
|
||||
oldEventId?: string;
|
||||
|
||||
/** The via servers to use to find this room's predecessor, if it exists. */
|
||||
oldViaServers?: string[];
|
||||
|
||||
upgraded?: boolean;
|
||||
}
|
||||
|
||||
|
@ -65,6 +73,7 @@ export default class AdvancedRoomSettingsTab extends React.Component<IProps, ISt
|
|||
if (predecessor) {
|
||||
additionalStateChanges.oldRoomId = predecessor.roomId;
|
||||
additionalStateChanges.oldEventId = predecessor.eventId;
|
||||
additionalStateChanges.oldViaServers = predecessor.viaServers;
|
||||
}
|
||||
|
||||
this.setState({
|
||||
|
@ -88,6 +97,7 @@ export default class AdvancedRoomSettingsTab extends React.Component<IProps, ISt
|
|||
action: Action.ViewRoom,
|
||||
room_id: this.state.oldRoomId,
|
||||
event_id: this.state.oldEventId,
|
||||
via_servers: this.state.oldViaServers,
|
||||
metricsTrigger: "WebPredecessorSettings",
|
||||
metricsViaKeyboard: e.type !== "click",
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue