From f0ba06e6ec46bcb1cef62ad1ed9ae5ab4f54dce2 Mon Sep 17 00:00:00 2001 From: Chris Haynes Date: Fri, 28 Aug 2020 11:51:48 +0100 Subject: [PATCH] Fixes #188 - update value after setRangeText call (#189) * Fixes #188 - update value after setRangeText call * Apply setRangeText fix to textarea * Update setRangeFix to check for changed value --- src/components/input/input.tsx | 10 +++++++++- src/components/textarea/textarea.tsx | 11 ++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/components/input/input.tsx b/src/components/input/input.tsx index da58a44d6..a4d1751b9 100644 --- a/src/components/input/input.tsx +++ b/src/components/input/input.tsx @@ -176,7 +176,15 @@ export class Input { end: number, selectMode: 'select' | 'start' | 'end' | 'preserve' = 'preserve' ) { - return this.input.setRangeText(replacement, start, end, selectMode); + const returnValue = this.input.setRangeText(replacement, start, end, selectMode); + + if (this.value !== this.input.value) { + this.value = this.input.value; + this.slChange.emit(); + this.slInput.emit(); + } + + return returnValue; } handleChange() { diff --git a/src/components/textarea/textarea.tsx b/src/components/textarea/textarea.tsx index 7d72b2999..ae6e1511e 100644 --- a/src/components/textarea/textarea.tsx +++ b/src/components/textarea/textarea.tsx @@ -154,7 +154,16 @@ export class Textarea { end: number, selectMode: 'select' | 'start' | 'end' | 'preserve' = 'preserve' ) { - return this.textarea.setRangeText(replacement, start, end, selectMode); + const returnValue = this.textarea.setRangeText(replacement, start, end, selectMode); + + if (this.value !== this.textarea.value) { + this.value = this.textarea.value; + this.setTextareaHeight(); + this.slChange.emit(); + this.slInput.emit(); + } + + return returnValue; } handleChange() {