Files
fizzy/app/javascript/controllers/retarget_links_controller.js
T
Jorge Manrubia d7c06702e3 Add controller to retarget links
So that internal links can skip turbo frames, and external links
open in new pages
2025-06-02 12:04:43 +02:00

16 lines
376 B
JavaScript

import { Controller } from "@hotwired/stimulus"
export default class extends Controller {
connect() {
this.element.querySelectorAll("a").forEach(this.#retargetLink.bind(this))
}
#retargetLink(link) {
link.target = this.#targetsSameDomain(link) ? "_top" : "_blank"
}
#targetsSameDomain(link) {
return link.href.startsWith(window.location.origin)
}
}