dawarich/app/javascript/controllers/icon_picker_controller.js

32 lines
721 B
JavaScript
Raw Normal View History

import { Controller } from "@hotwired/stimulus"
export default class extends Controller {
2025-11-18 15:14:12 -05:00
static targets = ["display", "hiddenInput"]
select(event) {
event.preventDefault()
event.stopPropagation()
const button = event.currentTarget
const icon = button.dataset.icon
2025-11-18 15:14:12 -05:00
if (icon) {
// Update the display
if (this.hasDisplayTarget) {
this.displayTarget.textContent = icon
}
// Update the hidden input
if (this.hasHiddenInputTarget) {
this.hiddenInputTarget.value = icon
}
// Close the dropdown by removing focus
const activeElement = document.activeElement
if (activeElement) {
activeElement.blur()
}
}
}
}