Sha256: 4dc2c0e063605411ea22dbc6d8ec24d4251210bfc43a5f73c8b4eb4eb3c28799
Contents?: true
Size: 804 Bytes
Versions: 1
Compression:
Stored size: 804 Bytes
Contents
import { Controller } from "@hotwired/stimulus" import { debounce } from "https://cdn.skypack.dev/es-toolkit@v1.27.0/function" export default class extends Controller { static targets = [ "input", "copyIcon", "successIcon" ] static values = { copied: Boolean } initialize() { this.reset = debounce(this.reset.bind(this), 2500) } copiedValueChanged() { this.#update() } copy() { this.#copyToClipboard() this.reset() } reset() { this.copiedValue = false } #copyToClipboard() { try { navigator.clipboard.writeText(this.inputTarget.value) this.copiedValue = true } catch { this.copiedValue = false } } #update() { this.copyIconTarget.hidden = this.copiedValue this.successIconTarget.hidden = !this.copiedValue } }
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
css-zero-0.0.70 | lib/generators/css_zero/add/templates/app/javascript/controllers/copyable_input_controller.js |