Sha256: eb799816db37c854aac59830f2da037cdc673e8c5594bc4da35e444579f74cb8

Contents?: true

Size: 794 Bytes

Versions: 2

Compression:

Stored size: 794 Bytes

Contents

import { Controller } from '@hotwired/stimulus'

export default class extends Controller {
  static get targets () {
    return ['textarea', 'count']
  }

  connect () {
    this.update()
  }

  update () {
    this.resize()
    this.updateCount()
  }

  resize () {
    this.textareaTarget.style.height = 'auto'
    this.textareaTarget.setAttribute('style', 'height:' + (this.textareaTarget.scrollHeight) + 'px;overflow-y:hidden;')
  }

  updateCount () {
    if (this.textareaTarget.getAttribute('maxlength')) {
      this.updateCountLength()
    }
  }

  updateCountLength () {
    const current_length = this.textareaTarget.value.length
    const maximum_length = this.textareaTarget.getAttribute('maxlength')

    this.countTarget.textContent = `${current_length}/${maximum_length}`
  }
}

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
headmin-0.5.3 app/assets/javascripts/headmin/controllers/textarea_controller.js
headmin-0.5.2 app/assets/javascripts/headmin/controllers/textarea_controller.js