From ba27291d5b3bd02ba66f0e1683063ee2815de96f Mon Sep 17 00:00:00 2001 From: Davide Di Pumpo Date: Wed, 3 Dec 2025 21:07:06 +0100 Subject: [PATCH] fix: ensure watch callbacks return undefined for consistency --- .changeset/humble-pears-fetch.md | 5 +++++ .../src/components/OmegaForm/OmegaTaggedUnion.vue | 1 + .../src/components/OmegaForm/OmegaTaggedUnionInternal.vue | 1 + .../vue-components/src/components/OmegaForm/useOmegaForm.ts | 1 + .../src/components/OmegaForm/useRegisterField.ts | 4 +++- 5 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 .changeset/humble-pears-fetch.md diff --git a/.changeset/humble-pears-fetch.md b/.changeset/humble-pears-fetch.md new file mode 100644 index 000000000..15175ca8c --- /dev/null +++ b/.changeset/humble-pears-fetch.md @@ -0,0 +1,5 @@ +--- +"@effect-app/vue-components": patch +--- + +fix: ensure watch callbacks return undefined for consistency diff --git a/packages/vue-components/src/components/OmegaForm/OmegaTaggedUnion.vue b/packages/vue-components/src/components/OmegaForm/OmegaTaggedUnion.vue index 63e3bd231..e353afd75 100644 --- a/packages/vue-components/src/components/OmegaForm/OmegaTaggedUnion.vue +++ b/packages/vue-components/src/components/OmegaForm/OmegaTaggedUnion.vue @@ -34,6 +34,7 @@ watch( }, (newTag) => { currentTag.value = newTag ?? null + return undefined }, { immediate: true } ) diff --git a/packages/vue-components/src/components/OmegaForm/OmegaTaggedUnionInternal.vue b/packages/vue-components/src/components/OmegaForm/OmegaTaggedUnionInternal.vue index cbd652c6b..bd6465135 100644 --- a/packages/vue-components/src/components/OmegaForm/OmegaTaggedUnionInternal.vue +++ b/packages/vue-components/src/components/OmegaForm/OmegaTaggedUnionInternal.vue @@ -44,5 +44,6 @@ watch(() => props.state, (newTag, oldTag) => { props.field.validate("change") }, 0) } + return undefined }, { immediate: true }) diff --git a/packages/vue-components/src/components/OmegaForm/useOmegaForm.ts b/packages/vue-components/src/components/OmegaForm/useOmegaForm.ts index 4335d65cf..f66616eaf 100644 --- a/packages/vue-components/src/components/OmegaForm/useOmegaForm.ts +++ b/packages/vue-components/src/components/OmegaForm/useOmegaForm.ts @@ -919,6 +919,7 @@ export const useOmegaForm = < // Reset with current values to mark them as the new baseline form.reset(values.value) } + return undefined }) } diff --git a/packages/vue-components/src/components/OmegaForm/useRegisterField.ts b/packages/vue-components/src/components/OmegaForm/useRegisterField.ts index 412da3ec0..213e19750 100644 --- a/packages/vue-components/src/components/OmegaForm/useRegisterField.ts +++ b/packages/vue-components/src/components/OmegaForm/useRegisterField.ts @@ -5,7 +5,9 @@ const Key = Symbol("injected") as InjectionKey) => { const map = injectCertain(Key) - watch(field, (f) => map.set(f.name, { label: f.label, id: f.id }), { immediate: true }) + watch(field, (f) => { + map.set(f.name, { label: f.label, id: f.id }) + }, { immediate: true }) onUnmounted(() => map.delete(field.value.name)) // todo; perhap only when owned }