From 052bd2a5e38adf0748d0e48285bcc9f5ab1bcf7e Mon Sep 17 00:00:00 2001 From: Nicholas Date: Sat, 3 Oct 2020 17:52:59 +0800 Subject: [PATCH] Fix triggering of onChange when value is the same (#892) Fixes: #710 --- app/client/src/widgets/DropdownWidget.tsx | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/app/client/src/widgets/DropdownWidget.tsx b/app/client/src/widgets/DropdownWidget.tsx index 7d529c7f13..12eecfaa98 100644 --- a/app/client/src/widgets/DropdownWidget.tsx +++ b/app/client/src/widgets/DropdownWidget.tsx @@ -136,11 +136,15 @@ class DropdownWidget extends BaseWidget { } onOptionSelected = (selectedOption: DropdownOption) => { + let isChanged = true; if (this.props.selectionType === "SINGLE_SELECT") { - this.updateWidgetMetaProperty( - "selectedOptionValue", - selectedOption.value, - ); + isChanged = !(this.props.selectedOption.value == selectedOption.value); + if (isChanged) { + this.updateWidgetMetaProperty( + "selectedOptionValue", + selectedOption.value, + ); + } } else if (this.props.selectionType === "MULTI_SELECT") { const isAlreadySelected = this.props.selectedOptionValueArr.includes( selectedOption.value, @@ -156,7 +160,8 @@ class DropdownWidget extends BaseWidget { } this.updateWidgetMetaProperty("selectedOptionValueArr", newSelectedValue); } - if (this.props.onOptionChange) { + + if (this.props.onOptionChange && isChanged) { super.executeAction({ dynamicString: this.props.onOptionChange, event: {