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: [ {