diff --git a/packages/builder/src/components/automation/AutomationBuilder/FlowChart/FlowItem.svelte b/packages/builder/src/components/automation/AutomationBuilder/FlowChart/FlowItem.svelte index ef0a61646e..0829b85a90 100644 --- a/packages/builder/src/components/automation/AutomationBuilder/FlowChart/FlowItem.svelte +++ b/packages/builder/src/components/automation/AutomationBuilder/FlowChart/FlowItem.svelte @@ -48,10 +48,6 @@ $automationStore.selectedAutomation?.automation?.definition?.steps.length + 1 - $: hasCompletedInputs = Object.keys( - block.schema?.inputs?.properties || {} - ).every(x => block?.inputs[x]) - $: loopingSelected = $automationStore.selectedAutomation?.automation.definition.steps.find( x => x.blockToLoop === block.id @@ -290,13 +286,7 @@
- actionModal.show()} - disabled={!hasCompletedInputs} - hoverable - name="AddCircle" - size="S" -/> + actionModal.show()} hoverable name="AddCircle" size="S" /> {#if isTrigger ? totalBlocks > 1 : blockIdx !== totalBlocks - 2}
{/if} diff --git a/packages/builder/src/components/automation/SetupPanel/AutomationBlockSetup.svelte b/packages/builder/src/components/automation/SetupPanel/AutomationBlockSetup.svelte index 856ab5f31a..4333e4a2e5 100644 --- a/packages/builder/src/components/automation/SetupPanel/AutomationBlockSetup.svelte +++ b/packages/builder/src/components/automation/SetupPanel/AutomationBlockSetup.svelte @@ -25,11 +25,11 @@ import QueryParamSelector from "./QueryParamSelector.svelte" import CronBuilder from "./CronBuilder.svelte" import Editor from "components/integration/QueryEditor.svelte" - import { debounce } from "lodash" import ModalBindableInput from "components/common/bindings/ModalBindableInput.svelte" import FilterDrawer from "components/design/PropertiesPanel/PropertyControls/FilterEditor/FilterDrawer.svelte" import { LuceneUtils } from "@budibase/frontend-core" import { getSchemaForTable } from "builderStore/dataBinding" + import { Utils } from "@budibase/frontend-core" export let block export let testData @@ -54,7 +54,7 @@ $: schema = getSchemaForTable(tableId, { searchableSchema: true }).schema $: schemaFields = Object.values(schema || {}) - const onChange = debounce(async function (e, key) { + const onChange = Utils.sequential(async (e, key) => { try { if (isTestModal) { // Special case for webhook, as it requires a body, but the schema already brings back the body's contents @@ -82,7 +82,7 @@ } catch (error) { notifications.error("Error saving automation") } - }, 800) + }) function getAvailableBindings(block, automation) { if (!block || !automation) { @@ -226,6 +226,7 @@ on:change={e => onChange(e, key)} {bindings} fillWidth + updateOnChange={false} /> {:else} onChange(e, key)} {bindings} allowJS={false} + updateOnChange={false} /> {/if} {:else if value.customType === "query"} @@ -310,6 +312,7 @@ type={value.customType} on:change={e => onChange(e, key)} {bindings} + updateOnChange={false} /> {:else}
@@ -321,6 +324,7 @@ value={inputData[key]} on:change={e => onChange(e, key)} {bindings} + updateOnChange={false} />
{/if} diff --git a/packages/builder/src/components/automation/SetupPanel/RowSelector.svelte b/packages/builder/src/components/automation/SetupPanel/RowSelector.svelte index 971a9cc51b..f91cd62bed 100644 --- a/packages/builder/src/components/automation/SetupPanel/RowSelector.svelte +++ b/packages/builder/src/components/automation/SetupPanel/RowSelector.svelte @@ -43,6 +43,11 @@ } const coerce = (value, type) => { + const re = new RegExp(/{{([^{].*?)}}/g) + if (re.test(value)) { + return value + } + if (type === "boolean") { if (typeof value === "boolean") { return value @@ -120,6 +125,7 @@ {bindings} fillWidth={true} allowJS={true} + updateOnChange={false} /> {/if} {:else if !rowControl} @@ -137,6 +143,7 @@ {bindings} fillWidth={true} allowJS={true} + updateOnChange={false} /> {/if} {/if} diff --git a/packages/builder/src/components/automation/SetupPanel/RowSelectorTypes.svelte b/packages/builder/src/components/automation/SetupPanel/RowSelectorTypes.svelte index 2a51e8d200..f66df3a9b1 100644 --- a/packages/builder/src/components/automation/SetupPanel/RowSelectorTypes.svelte +++ b/packages/builder/src/components/automation/SetupPanel/RowSelectorTypes.svelte @@ -60,5 +60,6 @@ {bindings} fillWidth={true} allowJS={true} + updateOnChange={false} /> {/if} diff --git a/packages/builder/src/components/automation/SetupPanel/SchemaSetup.svelte b/packages/builder/src/components/automation/SetupPanel/SchemaSetup.svelte index 71b10a3569..cb80072694 100644 --- a/packages/builder/src/components/automation/SetupPanel/SchemaSetup.svelte +++ b/packages/builder/src/components/automation/SetupPanel/SchemaSetup.svelte @@ -30,6 +30,10 @@ label: "DateTime", value: "datetime", }, + { + label: "Array", + value: "array", + }, ] function addField() { @@ -70,6 +74,7 @@ secondary placeholder="Enter field name" on:change={fieldNameChanged(field.name)} + updateOnChange={false} />