Introduce a RiotPermalinkConstructor and fix the setting name
Originally we were planning on using the current location as the permalink prefix, but that doesn't work if the user is a desktop user.pull/21833/head
							parent
							
								
									f879185aef
								
							
						
					
					
						commit
						f183e96d66
					
				|  | @ -0,0 +1,60 @@ | |||
| /* | ||||
| Copyright 2019 The Matrix.org Foundation C.I.C. | ||||
| 
 | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
| 
 | ||||
|     http://www.apache.org/licenses/LICENSE-2.0
 | ||||
| 
 | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
| */ | ||||
| 
 | ||||
| import PermalinkConstructor from "./PermalinkConstructor"; | ||||
| 
 | ||||
| /** | ||||
|  * Generates permalinks that self-reference the running webapp | ||||
|  */ | ||||
| export default class RiotPermalinkConstructor extends PermalinkConstructor { | ||||
| 
 | ||||
|     _riotUrl: string; | ||||
| 
 | ||||
|     constructor(riotUrl: string) { | ||||
|         super(); | ||||
|         this._riotUrl = riotUrl; | ||||
|     } | ||||
| 
 | ||||
|     forEvent(roomId: string, eventId: string, serverCandidates: string[]): string { | ||||
|         // TODO: Fix URL
 | ||||
|         return `${this._riotUrl}/#/${roomId}/${eventId}${this.encodeServerCandidates(serverCandidates)}`; | ||||
|     } | ||||
| 
 | ||||
|     forRoom(roomIdOrAlias: string, serverCandidates: string[]): string { | ||||
|         // TODO: Fix URL
 | ||||
|         return `${this._riotUrl}/#/${roomIdOrAlias}${this.encodeServerCandidates(serverCandidates)}`; | ||||
|     } | ||||
| 
 | ||||
|     forUser(userId: string): string { | ||||
|         // TODO: Fix URL
 | ||||
|         return `${this._riotUrl}/#/${userId}`; | ||||
|     } | ||||
| 
 | ||||
|     forGroup(groupId: string): string { | ||||
|         // TODO: Fix URL
 | ||||
|         return `${this._riotUrl}/#/${groupId}`; | ||||
|     } | ||||
| 
 | ||||
|     isPermalinkHost(testHost: string): boolean { | ||||
|         // TODO: Actual check
 | ||||
|         return testHost === this._riotUrl; | ||||
|     } | ||||
| 
 | ||||
|     encodeServerCandidates(candidates: string[]) { | ||||
|         if (!candidates || candidates.length === 0) return ''; | ||||
|         return `?via=${candidates.map(c => encodeURIComponent(c)).join("&via=")}`; | ||||
|     } | ||||
| } | ||||
|  | @ -17,8 +17,9 @@ limitations under the License. | |||
| import MatrixClientPeg from "../../MatrixClientPeg"; | ||||
| import isIp from "is-ip"; | ||||
| import utils from 'matrix-js-sdk/lib/utils'; | ||||
| import SpecPermalinkConstructor from "./SpecPermalinkConstructor"; | ||||
| import SpecPermalinkConstructor, {baseUrl as matrixtoBaseUrl} from "./SpecPermalinkConstructor"; | ||||
| import PermalinkConstructor from "./PermalinkConstructor"; | ||||
| import RiotPermalinkConstructor from "./RiotPermalinkConstructor"; | ||||
| 
 | ||||
| const SdkConfig = require("../../SdkConfig"); | ||||
| 
 | ||||
|  | @ -283,8 +284,8 @@ export function isPermalinkHost(host: string): boolean { | |||
| } | ||||
| 
 | ||||
| function getPermalinkConstructor(): PermalinkConstructor { | ||||
|     if (SdkConfig.get()['useRiotToCreatePermalinks']) { | ||||
|         // TODO: Return a RiotPermalinkConstructor
 | ||||
|     if (SdkConfig.get()['permalinkPrefix'] && SdkConfig.get()['permalinkPrefix'] !== matrixtoBaseUrl) { | ||||
|         return new RiotPermalinkConstructor(SdkConfig.get()['permalinkPrefix']); | ||||
|     } | ||||
| 
 | ||||
|     return new SpecPermalinkConstructor(); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Travis Ralston
						Travis Ralston