Files
site/resources/js/includes/composables/useAutoresizeTextarea.js

18 lines
502 B
JavaScript
Executable File
Vendored

import { watchEffect } from 'vue'
export const useAutoresizeTextarea = (element) => {
const resizeTextarea = () => {
element.value.style.height = 'auto'
element.value.style.height = element.value.scrollHeight + 'px'
}
watchEffect(onInvalidate => {
if (! element.value) return
resizeTextarea()
element.value.addEventListener('input', resizeTextarea)
onInvalidate(() => element.value?.removeEventListener('input', resizeTextarea))
})
}