Add basic types
This commit is contained in:
parent
0e92251f70
commit
d7e6f4b4b5
29 changed files with 542 additions and 340 deletions
|
@ -20,7 +20,7 @@ import PermalinkConstructor, {PermalinkParts} from "./PermalinkConstructor";
|
|||
* Generates permalinks that self-reference the running webapp
|
||||
*/
|
||||
export default class ElementPermalinkConstructor extends PermalinkConstructor {
|
||||
_elementUrl: string;
|
||||
private _elementUrl: string;
|
||||
|
||||
constructor(elementUrl: string) {
|
||||
super();
|
||||
|
@ -35,7 +35,7 @@ export default class ElementPermalinkConstructor extends PermalinkConstructor {
|
|||
return `${this._elementUrl}/#/room/${roomId}/${eventId}${this.encodeServerCandidates(serverCandidates)}`;
|
||||
}
|
||||
|
||||
forRoom(roomIdOrAlias: string, serverCandidates: string[]): string {
|
||||
forRoom(roomIdOrAlias: string, serverCandidates?: string[]): string {
|
||||
return `${this._elementUrl}/#/room/${roomIdOrAlias}${this.encodeServerCandidates(serverCandidates)}`;
|
||||
}
|
||||
|
||||
|
@ -62,7 +62,7 @@ export default class ElementPermalinkConstructor extends PermalinkConstructor {
|
|||
return testHost === (parsedUrl.host || parsedUrl.hostname); // one of the hosts should match
|
||||
}
|
||||
|
||||
encodeServerCandidates(candidates: string[]) {
|
||||
encodeServerCandidates(candidates?: string[]) {
|
||||
if (!candidates || candidates.length === 0) return '';
|
||||
return `?via=${candidates.map(c => encodeURIComponent(c)).join("&via=")}`;
|
||||
}
|
||||
|
|
|
@ -74,10 +74,19 @@ const MAX_SERVER_CANDIDATES = 3;
|
|||
// the list and magically have the link work.
|
||||
|
||||
export class RoomPermalinkCreator {
|
||||
private _room: Room;
|
||||
private _roomId: string;
|
||||
private _highestPlUserId: string;
|
||||
private _populationMap: { [serverName: string]: number };
|
||||
private _bannedHostsRegexps: RegExp[];
|
||||
private _allowedHostsRegexps: RegExp[];
|
||||
private _serverCandidates: string[];
|
||||
private _started: boolean;
|
||||
|
||||
// We support being given a roomId as a fallback in the event the `room` object
|
||||
// doesn't exist or is not healthy for us to rely on. For example, loading a
|
||||
// permalink to a room which the MatrixClient doesn't know about.
|
||||
constructor(room, roomId = null) {
|
||||
constructor(room: Room, roomId: string = null) {
|
||||
this._room = room;
|
||||
this._roomId = room ? room.roomId : roomId;
|
||||
this._highestPlUserId = null;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue