diff --git a/packages/client/src/components/app/forms/AttachmentField.svelte b/packages/client/src/components/app/forms/AttachmentField.svelte index 5023e77ae5..bbb5314a85 100644 --- a/packages/client/src/components/app/forms/AttachmentField.svelte +++ b/packages/client/src/components/app/forms/AttachmentField.svelte @@ -48,8 +48,8 @@ } const handleChange = e => { - fieldApi.setValue(e.detail) - if (onChange) { + const changed = fieldApi.setValue(e.detail) + if (onChange && changed) { onChange({ value: e.detail }) } } diff --git a/packages/client/src/components/app/forms/BooleanField.svelte b/packages/client/src/components/app/forms/BooleanField.svelte index b9c69ce684..a65d041c29 100644 --- a/packages/client/src/components/app/forms/BooleanField.svelte +++ b/packages/client/src/components/app/forms/BooleanField.svelte @@ -28,8 +28,8 @@ } const handleChange = e => { - fieldApi.setValue(e.detail) - if (onChange) { + const changed = fieldApi.setValue(e.detail) + if (onChange && changed) { onChange({ value: e.detail }) } } diff --git a/packages/client/src/components/app/forms/DateTimeField.svelte b/packages/client/src/components/app/forms/DateTimeField.svelte index 4ca766121d..182a79aabf 100644 --- a/packages/client/src/components/app/forms/DateTimeField.svelte +++ b/packages/client/src/components/app/forms/DateTimeField.svelte @@ -17,8 +17,8 @@ let fieldApi const handleChange = e => { - fieldApi.setValue(e.detail) - if (onChange) { + const changed = fieldApi.setValue(e.detail) + if (onChange && changed) { onChange({ value: e.detail }) } } diff --git a/packages/client/src/components/app/forms/InnerForm.svelte b/packages/client/src/components/app/forms/InnerForm.svelte index 554085ba91..05178ecfd7 100644 --- a/packages/client/src/components/app/forms/InnerForm.svelte +++ b/packages/client/src/components/app/forms/InnerForm.svelte @@ -268,7 +268,7 @@ // Skip if the value is the same if (!skipCheck && fieldState.value === value) { - return + return false } // Update field state diff --git a/packages/client/src/components/app/forms/JSONField.svelte b/packages/client/src/components/app/forms/JSONField.svelte index 4bb5ee542c..607947605a 100644 --- a/packages/client/src/components/app/forms/JSONField.svelte +++ b/packages/client/src/components/app/forms/JSONField.svelte @@ -37,8 +37,8 @@ const handleChange = e => { const value = parseValue(e.detail) - fieldApi.setValue(value) - if (onChange) { + const changed = fieldApi.setValue(value) + if (onChange && changed) { onChange({ value }) } } diff --git a/packages/client/src/components/app/forms/LongFormField.svelte b/packages/client/src/components/app/forms/LongFormField.svelte index 200e55af41..8d94f83319 100644 --- a/packages/client/src/components/app/forms/LongFormField.svelte +++ b/packages/client/src/components/app/forms/LongFormField.svelte @@ -47,8 +47,8 @@ } const handleChange = e => { - fieldApi.setValue(e.detail) - if (onChange) { + const changed = fieldApi.setValue(e.detail) + if (onChange && changed) { onChange({ value: e.detail }) } } diff --git a/packages/client/src/components/app/forms/MultiFieldSelect.svelte b/packages/client/src/components/app/forms/MultiFieldSelect.svelte index 55bca89c23..a6889f37b2 100644 --- a/packages/client/src/components/app/forms/MultiFieldSelect.svelte +++ b/packages/client/src/components/app/forms/MultiFieldSelect.svelte @@ -44,8 +44,8 @@ } const handleChange = e => { - fieldApi.setValue(e.detail) - if (onChange) { + const changed = fieldApi.setValue(e.detail) + if (onChange && changed) { onChange({ value: e.detail }) } } diff --git a/packages/client/src/components/app/forms/OptionsField.svelte b/packages/client/src/components/app/forms/OptionsField.svelte index 1df0216f56..5e2df50464 100644 --- a/packages/client/src/components/app/forms/OptionsField.svelte +++ b/packages/client/src/components/app/forms/OptionsField.svelte @@ -34,8 +34,8 @@ ) const handleChange = e => { - fieldApi.setValue(e.detail) - if (onChange) { + const changed = fieldApi.setValue(e.detail) + if (onChange && changed) { onChange({ value: e.detail }) } } diff --git a/packages/client/src/components/app/forms/RelationshipField.svelte b/packages/client/src/components/app/forms/RelationshipField.svelte index ce2f194786..735b44b9ae 100644 --- a/packages/client/src/components/app/forms/RelationshipField.svelte +++ b/packages/client/src/components/app/forms/RelationshipField.svelte @@ -84,8 +84,8 @@ } const handleChange = value => { - fieldApi.setValue(value) - if (onChange) { + const changed = fieldApi.setValue(value) + if (onChange && changed) { onChange({ value }) } } diff --git a/packages/client/src/components/app/forms/S3Upload.svelte b/packages/client/src/components/app/forms/S3Upload.svelte index 188ff042e9..795e2e4332 100644 --- a/packages/client/src/components/app/forms/S3Upload.svelte +++ b/packages/client/src/components/app/forms/S3Upload.svelte @@ -90,8 +90,8 @@ } const handleChange = e => { - fieldApi.setValue(e.detail) - if (onChange) { + const changed = fieldApi.setValue(e.detail) + if (onChange && changed) { onChange({ value: e.detail }) } } diff --git a/packages/client/src/components/app/forms/StringField.svelte b/packages/client/src/components/app/forms/StringField.svelte index fcdcfdc099..26136b5d8d 100644 --- a/packages/client/src/components/app/forms/StringField.svelte +++ b/packages/client/src/components/app/forms/StringField.svelte @@ -16,8 +16,8 @@ let fieldApi const handleChange = e => { - fieldApi.setValue(e.detail) - if (onChange) { + const changed = fieldApi.setValue(e.detail) + if (onChange && changed) { onChange({ value: e.detail }) } } @@ -29,7 +29,6 @@ {disabled} {validation} {defaultValue} - {onChange} type={type === "number" ? "number" : "string"} bind:fieldState bind:fieldApi