Merge pull request #6630 from KumJungMin/fix/issue-4510

fix(TextArea): autoResize issue with v-show by implementing ResizeObserver
pull/6775/head
Tuğçe Küçükoğlu 2024-11-13 10:51:30 +03:00 committed by GitHub
commit aa92d01043
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 13 additions and 3 deletions

View File

@ -11,17 +11,27 @@ export default {
extends: BaseTextarea, extends: BaseTextarea,
inheritAttrs: false, inheritAttrs: false,
mounted() { mounted() {
if (this.$el.offsetParent && this.autoResize) { if (this.autoResize) {
this.observer = new ResizeObserver(() => {
this.resize(); this.resize();
});
this.observer.observe(this.$el);
} }
}, },
updated() { updated() {
if (this.$el.offsetParent && this.autoResize) { if (this.autoResize) {
this.resize(); this.resize();
} }
}, },
beforeUnmount() {
if (this.observer) {
this.observer.disconnect();
}
},
methods: { methods: {
resize() { resize() {
if (!this.$el.offsetParent) return;
this.$el.style.height = 'auto'; this.$el.style.height = 'auto';
this.$el.style.height = this.$el.scrollHeight + 'px'; this.$el.style.height = this.$el.scrollHeight + 'px';