diff --git a/app/client/src/components/propertyControls/BaseControl.tsx b/app/client/src/components/propertyControls/BaseControl.tsx
index 4423425cb8..d6bcac127d 100644
--- a/app/client/src/components/propertyControls/BaseControl.tsx
+++ b/app/client/src/components/propertyControls/BaseControl.tsx
@@ -16,12 +16,14 @@ export type ControlMethods = Record<
// eslint-disable-next-line @typescript-eslint/ban-types
class BaseControl
extends Component
{
- shoudUpdateProperty(propertyValue: unknown) {
- return !(
- (this.props.propertyValue === undefined &&
- propertyValue === this.props.defaultValue) ||
- !(this.props.propertyValue !== propertyValue)
- );
+ shouldUpdateProperty(newValue: unknown) {
+ const { defaultValue, propertyValue: oldValue } = this.props;
+
+ if (oldValue === undefined && newValue === defaultValue) return false;
+
+ if (newValue === oldValue) return false;
+
+ return true;
}
updateProperty(
@@ -32,7 +34,7 @@ class BaseControl
extends Component
{
isUpdatedViaKeyboard?: boolean,
) {
if (
- this.shoudUpdateProperty(propertyValue) &&
+ this.shouldUpdateProperty(propertyValue) &&
this.props.onPropertyChange
) {
this.props.onPropertyChange(
@@ -57,7 +59,7 @@ class BaseControl
extends Component
{
if (this.props.onBatchUpdateWithAssociatedUpdates) {
this.props.onBatchUpdateWithAssociatedUpdates(
updates.filter(({ propertyValue }) =>
- this.shoudUpdateProperty(propertyValue),
+ this.shouldUpdateProperty(propertyValue),
),
);
}
diff --git a/app/client/src/widgets/anvil/SectionWidget/widget/config/autocompleteConfig.ts b/app/client/src/widgets/anvil/SectionWidget/widget/config/autocompleteConfig.ts
new file mode 100644
index 0000000000..26579c80b8
--- /dev/null
+++ b/app/client/src/widgets/anvil/SectionWidget/widget/config/autocompleteConfig.ts
@@ -0,0 +1,5 @@
+import { DefaultAutocompleteDefinitions } from "widgets/WidgetUtils";
+
+export const autocompleteConfig = {
+ isVisible: DefaultAutocompleteDefinitions.isVisible,
+};
diff --git a/app/client/src/widgets/anvil/SectionWidget/widget/config/defaultConfig.ts b/app/client/src/widgets/anvil/SectionWidget/widget/config/defaultConfig.ts
index 410e775e40..dce3e5e3b3 100644
--- a/app/client/src/widgets/anvil/SectionWidget/widget/config/defaultConfig.ts
+++ b/app/client/src/widgets/anvil/SectionWidget/widget/config/defaultConfig.ts
@@ -19,6 +19,7 @@ export const defaultConfig: WidgetDefaultProps = {
version: 1,
widgetName: "Section",
zoneCount: 1,
+ isVisible: true,
blueprint: {
operations: [
{
diff --git a/app/client/src/widgets/anvil/SectionWidget/widget/config/index.ts b/app/client/src/widgets/anvil/SectionWidget/widget/config/index.ts
index 04a85aeccf..c64664e734 100644
--- a/app/client/src/widgets/anvil/SectionWidget/widget/config/index.ts
+++ b/app/client/src/widgets/anvil/SectionWidget/widget/config/index.ts
@@ -4,6 +4,7 @@ import { defaultConfig } from "./defaultConfig";
import { propertyPaneContent } from "./propertyPaneContent";
import { propertyPaneStyle } from "./propertyPaneStyle";
import { methodsConfig } from "./methodsConfig";
+import { autocompleteConfig } from "./autocompleteConfig";
export {
anvilConfig,
@@ -12,4 +13,5 @@ export {
propertyPaneContent,
propertyPaneStyle,
methodsConfig,
+ autocompleteConfig,
};
diff --git a/app/client/src/widgets/anvil/SectionWidget/widget/index.tsx b/app/client/src/widgets/anvil/SectionWidget/widget/index.tsx
index a504ef752c..af973fe16c 100644
--- a/app/client/src/widgets/anvil/SectionWidget/widget/index.tsx
+++ b/app/client/src/widgets/anvil/SectionWidget/widget/index.tsx
@@ -16,6 +16,7 @@ import {
propertyPaneContent,
propertyPaneStyle,
methodsConfig,
+ autocompleteConfig,
} from "./config";
import type { WidgetProps, WidgetState } from "widgets/BaseWidget";
import type { LayoutProps } from "layoutSystems/anvil/utils/anvilTypes";
@@ -33,7 +34,6 @@ import type {
} from "layoutSystems/anvil/utils/paste/types";
import { call } from "redux-saga/effects";
import { pasteWidgetsInSection } from "layoutSystems/anvil/utils/paste/sectionPasteUtils";
-import { DefaultAutocompleteDefinitions } from "widgets/WidgetUtils";
class SectionWidget extends BaseWidget {
static type = anvilWidgets.SECTION_WIDGET;
@@ -58,9 +58,7 @@ class SectionWidget extends BaseWidget {
}
static getAutocompleteDefinitions(): AutocompletionDefinitions {
- return {
- isVisible: DefaultAutocompleteDefinitions.isVisible,
- };
+ return autocompleteConfig;
}
static getSetterConfig(): SetterConfig | null {
diff --git a/app/client/src/widgets/anvil/ZoneWidget/widget/config/autocompleteConfig.ts b/app/client/src/widgets/anvil/ZoneWidget/widget/config/autocompleteConfig.ts
new file mode 100644
index 0000000000..26579c80b8
--- /dev/null
+++ b/app/client/src/widgets/anvil/ZoneWidget/widget/config/autocompleteConfig.ts
@@ -0,0 +1,5 @@
+import { DefaultAutocompleteDefinitions } from "widgets/WidgetUtils";
+
+export const autocompleteConfig = {
+ isVisible: DefaultAutocompleteDefinitions.isVisible,
+};
diff --git a/app/client/src/widgets/anvil/ZoneWidget/widget/config/defaultConfig.ts b/app/client/src/widgets/anvil/ZoneWidget/widget/config/defaultConfig.ts
index 38d88e03a2..b8090c8895 100644
--- a/app/client/src/widgets/anvil/ZoneWidget/widget/config/defaultConfig.ts
+++ b/app/client/src/widgets/anvil/ZoneWidget/widget/config/defaultConfig.ts
@@ -22,6 +22,7 @@ export const defaultConfig: WidgetDefaultProps = {
rows: 0,
version: 1,
widgetName: "Zone",
+ isVisible: true,
blueprint: {
operations: [
{
diff --git a/app/client/src/widgets/anvil/ZoneWidget/widget/config/index.ts b/app/client/src/widgets/anvil/ZoneWidget/widget/config/index.ts
index 04a85aeccf..c64664e734 100644
--- a/app/client/src/widgets/anvil/ZoneWidget/widget/config/index.ts
+++ b/app/client/src/widgets/anvil/ZoneWidget/widget/config/index.ts
@@ -4,6 +4,7 @@ import { defaultConfig } from "./defaultConfig";
import { propertyPaneContent } from "./propertyPaneContent";
import { propertyPaneStyle } from "./propertyPaneStyle";
import { methodsConfig } from "./methodsConfig";
+import { autocompleteConfig } from "./autocompleteConfig";
export {
anvilConfig,
@@ -12,4 +13,5 @@ export {
propertyPaneContent,
propertyPaneStyle,
methodsConfig,
+ autocompleteConfig,
};
diff --git a/app/client/src/widgets/anvil/ZoneWidget/widget/index.tsx b/app/client/src/widgets/anvil/ZoneWidget/widget/index.tsx
index 14c51947b4..6371540d71 100644
--- a/app/client/src/widgets/anvil/ZoneWidget/widget/index.tsx
+++ b/app/client/src/widgets/anvil/ZoneWidget/widget/index.tsx
@@ -16,6 +16,7 @@ import {
propertyPaneContent,
propertyPaneStyle,
methodsConfig,
+ autocompleteConfig,
} from "./config";
import BaseWidget from "widgets/BaseWidget";
import type { WidgetProps, WidgetState } from "widgets/BaseWidget";
@@ -33,7 +34,6 @@ import type {
import { call } from "redux-saga/effects";
import { pasteWidgetsInZone } from "layoutSystems/anvil/utils/paste/zonePasteUtils";
import { SectionColumns } from "layoutSystems/anvil/sectionSpaceDistributor/constants";
-import { DefaultAutocompleteDefinitions } from "widgets/WidgetUtils";
class ZoneWidget extends BaseWidget {
static type = anvilWidgets.ZONE_WIDGET;
@@ -62,9 +62,7 @@ class ZoneWidget extends BaseWidget {
}
static getAutocompleteDefinitions(): AutocompletionDefinitions {
- return {
- isVisible: DefaultAutocompleteDefinitions.isVisible,
- };
+ return autocompleteConfig;
}
static getSetterConfig(): SetterConfig | null {
diff --git a/app/client/src/widgets/wds/WDSBaseInputWidget/widget/index.tsx b/app/client/src/widgets/wds/WDSBaseInputWidget/widget/index.tsx
index b27a1b18d0..bc8b780636 100644
--- a/app/client/src/widgets/wds/WDSBaseInputWidget/widget/index.tsx
+++ b/app/client/src/widgets/wds/WDSBaseInputWidget/widget/index.tsx
@@ -37,6 +37,7 @@ class WDSBaseInputWidget<
isRequired: false,
isReadOnly: false,
isDisabled: false,
+ isVisible: true,
animateLoading: true,
responsiveBehavior: ResponsiveBehavior.Fill,
} as unknown as WidgetDefaultProps;
diff --git a/app/client/src/widgets/wds/WDSCheckboxWidget/config/defaultsConfig.ts b/app/client/src/widgets/wds/WDSCheckboxWidget/config/defaultsConfig.ts
index a7dbefb065..e3d61bf262 100644
--- a/app/client/src/widgets/wds/WDSCheckboxWidget/config/defaultsConfig.ts
+++ b/app/client/src/widgets/wds/WDSCheckboxWidget/config/defaultsConfig.ts
@@ -8,6 +8,7 @@ export const defaultsConfig = {
version: 1,
isDisabled: false,
isRequired: false,
+ isVisible: true,
animateLoading: true,
responsiveBehavior: ResponsiveBehavior.Fill,
} as unknown as WidgetDefaultProps;
diff --git a/app/client/src/widgets/wds/WDSParagraphWidget/config/defaultsConfig.ts b/app/client/src/widgets/wds/WDSParagraphWidget/config/defaultsConfig.ts
index f842b6345d..e05fd9f14e 100644
--- a/app/client/src/widgets/wds/WDSParagraphWidget/config/defaultsConfig.ts
+++ b/app/client/src/widgets/wds/WDSParagraphWidget/config/defaultsConfig.ts
@@ -15,6 +15,7 @@ export const defaultsConfig = {
shouldTruncate: false,
version: 1,
animateLoading: true,
+ isVisible: true,
responsiveBehavior: ResponsiveBehavior.Fill,
blueprint: {
operations: [
diff --git a/app/client/src/widgets/wds/WDSRadioGroupWidget/config/defaultsConfig.ts b/app/client/src/widgets/wds/WDSRadioGroupWidget/config/defaultsConfig.ts
index e49a93cbf6..ea9ab5dc82 100644
--- a/app/client/src/widgets/wds/WDSRadioGroupWidget/config/defaultsConfig.ts
+++ b/app/client/src/widgets/wds/WDSRadioGroupWidget/config/defaultsConfig.ts
@@ -12,6 +12,7 @@ export const defaultsConfig = {
defaultOptionValue: "L",
isRequired: false,
isDisabled: false,
+ isVisible: true,
isInline: true,
widgetName: "RadioGroup",
orientation: "vertical",
diff --git a/app/client/src/widgets/wds/WDSSwitchWidget/config/defaultsConfig.ts b/app/client/src/widgets/wds/WDSSwitchWidget/config/defaultsConfig.ts
index cb1e9af783..8b76f9d99c 100644
--- a/app/client/src/widgets/wds/WDSSwitchWidget/config/defaultsConfig.ts
+++ b/app/client/src/widgets/wds/WDSSwitchWidget/config/defaultsConfig.ts
@@ -8,6 +8,7 @@ export const defaultsConfig = {
labelPosition: "start",
version: 1,
isDisabled: false,
+ isVisible: true,
animateLoading: true,
responsiveBehavior: ResponsiveBehavior.Fill,
} as unknown as WidgetDefaultProps;
diff --git a/app/client/src/widgets/wds/WDSTableWidget/config/defaultsConfig.ts b/app/client/src/widgets/wds/WDSTableWidget/config/defaultsConfig.ts
index 4491580330..dda00d1457 100644
--- a/app/client/src/widgets/wds/WDSTableWidget/config/defaultsConfig.ts
+++ b/app/client/src/widgets/wds/WDSTableWidget/config/defaultsConfig.ts
@@ -42,6 +42,7 @@ export const defaultsConfig = {
buttonLabel: "Action",
buttonColor: "accent",
buttonVariant: "filled",
+ isVisible: true,
blueprint: {
operations: [
{