Files
fizzy/app/javascript/controllers/turbo_navigation_controller.js
T
2025-11-21 11:48:29 +01:00

28 lines
709 B
JavaScript

import { Controller } from "@hotwired/stimulus"
export default class extends Controller {
rememberLocation() {
sessionStorage.setItem("referrerUrl", window.location.href)
}
backIfSamePath(event) {
if (event.ctrlKey || event.metaKey || event.shiftKey) { return }
const link = event.target.closest("a")
const targetUrl = new URL(link.href)
if (this.#referrerPath && targetUrl.pathname === this.#referrerPath) {
event.preventDefault()
Turbo.visit(this.#referrerUrl)
}
}
get #referrerPath() {
if (!this.#referrerUrl) return null
return new URL(this.#referrerUrl).pathname
}
get #referrerUrl() {
return sessionStorage.getItem("referrerUrl")
}
}