feat: Add keyboard navigation to member linking dropdown
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Moritz 2025-11-27 16:01:42 +01:00
parent 4b4ec63613
commit 3da0ebcb3f
Signed by: moritz
GPG key ID: 1020A035E5DD0824
4 changed files with 255 additions and 12 deletions

View file

@ -24,9 +24,32 @@ import topbar from "../vendor/topbar"
let csrfToken = document.querySelector("meta[name='csrf-token']").getAttribute("content")
// Hooks for LiveView components
let Hooks = {}
// ComboBox hook: Prevents form submission when Enter is pressed in dropdown
Hooks.ComboBox = {
mounted() {
this.handleKeyDown = (e) => {
const isDropdownOpen = this.el.getAttribute("aria-expanded") === "true"
if (e.key === "Enter" && isDropdownOpen) {
e.preventDefault()
}
}
this.el.addEventListener("keydown", this.handleKeyDown)
},
destroyed() {
this.el.removeEventListener("keydown", this.handleKeyDown)
}
}
let liveSocket = new LiveSocket("/live", Socket, {
longPollFallbackMs: 2500,
params: {_csrf_token: csrfToken}
params: {_csrf_token: csrfToken},
hooks: Hooks
})
// Listen for custom events from LiveView