Move permalink host check into permalink constructors
Without the requirement for a room to workpull/21833/head
							parent
							
								
									926e1146f9
								
							
						
					
					
						commit
						f879185aef
					
				|  | @ -32,7 +32,7 @@ import SettingsStore from "../../../settings/SettingsStore"; | |||
| import ReplyThread from "../elements/ReplyThread"; | ||||
| import {pillifyLinks} from '../../../utils/pillify'; | ||||
| import {IntegrationManagers} from "../../../integrations/IntegrationManagers"; | ||||
| import {RoomPermalinkCreator} from "../../../utils/permalinks/RoomPermalinkCreator"; | ||||
| import {isPermalinkHost} from "../../../utils/permalinks/RoomPermalinkCreator"; | ||||
| 
 | ||||
| module.exports = createReactClass({ | ||||
|     displayName: 'TextualBody', | ||||
|  | @ -251,10 +251,7 @@ module.exports = createReactClass({ | |||
|             // never preview matrix.to links (if anything we should give a smart
 | ||||
|             // preview of the room/user they point to: nobody needs to be reminded
 | ||||
|             // what the matrix.to site looks like).
 | ||||
|             if (this.props.mxEvent && this.props.mxEvent.getRoom()) { | ||||
|                 const permalinks = new RoomPermalinkCreator(this.props.mxEvent.getRoom()); | ||||
|                 if (permalinks.isPermalinkHost(host)) return false; | ||||
|             } | ||||
|             if (isPermalinkHost(host)) return false; | ||||
| 
 | ||||
|             if (node.textContent.toLowerCase().trim().startsWith(host.toLowerCase())) { | ||||
|                 // it's a "foo.pl" style link
 | ||||
|  |  | |||
|  | @ -34,4 +34,8 @@ export default class PermalinkConstructor { | |||
|     forUser(userId: string): string { | ||||
|         throw new Error("Not implemented"); | ||||
|     } | ||||
| 
 | ||||
|     isPermalinkHost(host: string): boolean { | ||||
|         throw new Error("Not implemented"); | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -17,10 +17,7 @@ limitations under the License. | |||
| import MatrixClientPeg from "../../MatrixClientPeg"; | ||||
| import isIp from "is-ip"; | ||||
| import utils from 'matrix-js-sdk/lib/utils'; | ||||
| import SpecPermalinkConstructor, { | ||||
|     baseUrl as matrixtoBaseUrl, | ||||
|     host as matrixtoHost | ||||
| } from "./SpecPermalinkConstructor"; | ||||
| import SpecPermalinkConstructor from "./SpecPermalinkConstructor"; | ||||
| import PermalinkConstructor from "./PermalinkConstructor"; | ||||
| 
 | ||||
| const SdkConfig = require("../../SdkConfig"); | ||||
|  | @ -127,10 +124,6 @@ export class RoomPermalinkCreator { | |||
|         return this._started; | ||||
|     } | ||||
| 
 | ||||
|     isPermalinkHost(host: string): boolean { | ||||
|         return host === matrixtoHost; | ||||
|     } | ||||
| 
 | ||||
|     forEvent(eventId) { | ||||
|         return getPermalinkConstructor().forEvent(this._roomId, eventId, this._serverCandidates); | ||||
|     } | ||||
|  | @ -285,6 +278,10 @@ export function makeGroupPermalink(groupId) { | |||
|     return getPermalinkConstructor().forGroup(groupId); | ||||
| } | ||||
| 
 | ||||
| export function isPermalinkHost(host: string): boolean { | ||||
|     return getPermalinkConstructor().isPermalinkHost(host); | ||||
| } | ||||
| 
 | ||||
| function getPermalinkConstructor(): PermalinkConstructor { | ||||
|     if (SdkConfig.get()['useRiotToCreatePermalinks']) { | ||||
|         // TODO: Return a RiotPermalinkConstructor
 | ||||
|  |  | |||
|  | @ -43,6 +43,10 @@ export default class SpecPermalinkConstructor extends PermalinkConstructor { | |||
|         return `${baseUrl}/#/${groupId}`; | ||||
|     } | ||||
| 
 | ||||
|     isPermalinkHost(testHost: string): boolean { | ||||
|         return testHost === host; | ||||
|     } | ||||
| 
 | ||||
|     encodeServerCandidates(candidates: string[]) { | ||||
|         if (!candidates || candidates.length === 0) return ''; | ||||
|         return `?via=${candidates.map(c => encodeURIComponent(c)).join("&via=")}`; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Travis Ralston
						Travis Ralston