import { Controller } from "@hotwired/stimulus" import { showFlashMessage } from "../maps/helpers" export default class extends Controller { static values = { text: String } static targets = ["icon", "text"] copy() { navigator.clipboard.writeText(this.textValue).then(() => { this.showButtonFeedback() showFlashMessage('notice', 'Link copied to clipboard!') }).catch(err => { console.error('Failed to copy text: ', err) showFlashMessage('error', 'Failed to copy link') }) } showButtonFeedback() { const button = this.element const originalClasses = button.className const originalHTML = button.innerHTML // Change button appearance button.className = 'btn btn-success btn-xs' button.innerHTML = ` Copied! ` button.disabled = true // Reset after 2 seconds setTimeout(() => { button.className = originalClasses button.innerHTML = originalHTML button.disabled = false }, 2000) } }