mirror of
https://github.com/Chocobozzz/PeerTube.git
synced 2024-09-11 21:47:09 +03:00
Detect internal link on plugin pages
This commit is contained in:
parent
1b9b904c18
commit
797c2f432f
@ -1 +1 @@
|
||||
<div #root></div>
|
||||
<div (click)="onRootClick($event)" #root></div>
|
||||
|
@ -32,6 +32,25 @@ export class PluginPagesComponent implements OnDestroy, AfterViewInit {
|
||||
if (this.urlSub) this.urlSub.unsubscribe()
|
||||
}
|
||||
|
||||
onRootClick (event: Event) {
|
||||
const target = event.target as HTMLElement
|
||||
|
||||
if (!target) return
|
||||
if (target.tagName !== 'A') return
|
||||
|
||||
const a = target as HTMLAnchorElement
|
||||
|
||||
// Get the href attribute set by the dev, not the one calculated by JS to detect if it's a relative/external link
|
||||
const href = a.getAttribute('href')
|
||||
|
||||
if (a.target !== '_blank' && !href.match(/^https?:\/\//)) {
|
||||
event.preventDefault()
|
||||
event.stopPropagation()
|
||||
|
||||
this.router.navigateByUrl(href)
|
||||
}
|
||||
}
|
||||
|
||||
private async loadRoute () {
|
||||
await this.pluginService.ensurePluginsAreLoaded(this.route.snapshot.data.pluginScope || 'common')
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user