From e7abdeb96c157adda1aa724a13070567985b3078 Mon Sep 17 00:00:00 2001 From: Davide Di Pumpo Date: Tue, 4 Nov 2025 09:43:36 +0100 Subject: [PATCH 1/3] decode --- .../vue-components/src/components/OmegaForm/useOmegaForm.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/vue-components/src/components/OmegaForm/useOmegaForm.ts b/packages/vue-components/src/components/OmegaForm/useOmegaForm.ts index 1038803a56..f3bc868ab1 100644 --- a/packages/vue-components/src/components/OmegaForm/useOmegaForm.ts +++ b/packages/vue-components/src/components/OmegaForm/useOmegaForm.ts @@ -711,7 +711,8 @@ export const useOmegaForm = < try { // Note: Partial schemas don't have .make() method yet (https://github.com/Effect-TS/effect/issues/4222) if ("make" in schema && typeof (schema as any).make === "function") { - return (schema as any).make(defaultValues, { disableValidation: true }) + const decoded = (schema as any).make(defaultValues, { disableValidation: true }) + return S.encodeSync(schema.pipe(S.partial))(decoded) } } catch (error) { console.warn("Could not extract schema constructor defaults:", error) From 4dfcee422cc57ada2b8d6ec404f62bafc8025554 Mon Sep 17 00:00:00 2001 From: Davide Di Pumpo Date: Tue, 4 Nov 2025 09:52:34 +0100 Subject: [PATCH 2/3] fix: default encoding --- .../WithDefaultConstructorPersistency.test.ts | 8 +++++--- .../stories/OmegaForm/SimpleFormVuetifyDefault.vue | 10 +++++++--- .../stories/OmegaForm/WithDefaultConstructor.vue | 4 +++- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/packages/vue-components/__tests__/OmegaForm/WithDefaultConstructorPersistency.test.ts b/packages/vue-components/__tests__/OmegaForm/WithDefaultConstructorPersistency.test.ts index 030376400d..6b0ddd20e4 100644 --- a/packages/vue-components/__tests__/OmegaForm/WithDefaultConstructorPersistency.test.ts +++ b/packages/vue-components/__tests__/OmegaForm/WithDefaultConstructorPersistency.test.ts @@ -24,7 +24,8 @@ describe("OmegaForm withDefaultConstructor with persistency", () => { addForm: null, b: S.PositiveNumber(100) }))), - fifth: S.Email + fifth: S.Email, + sixth: S.NumberFromString.pipe(S.withDefaultConstructor(() => 1000)) }) // Simulate query string parameters @@ -32,7 +33,7 @@ describe("OmegaForm withDefaultConstructor with persistency", () => { // Format: pathname-key1-key2-key3... // Keys from meta will be flattened with dot notation for nested fields const pathname = "/test" - const keys = ["first", "second", "third", "fourth.addForm", "fourth.b", "fifth"] + const keys = ["first", "second", "third", "fourth.addForm", "fourth.b", "fifth", "sixth"] const persistencyKey = `${pathname}-${keys.join("-")}` const queryValue = JSON.stringify({ first: 1234 }) @@ -95,7 +96,8 @@ describe("OmegaForm withDefaultConstructor with persistency", () => { fourth: { addForm: null, b: 100 // Default from withDefaultConstructor - } + }, + sixth: "1000" }) }) }) diff --git a/packages/vue-components/stories/OmegaForm/SimpleFormVuetifyDefault.vue b/packages/vue-components/stories/OmegaForm/SimpleFormVuetifyDefault.vue index c431feeae3..9615136f39 100644 --- a/packages/vue-components/stories/OmegaForm/SimpleFormVuetifyDefault.vue +++ b/packages/vue-components/stories/OmegaForm/SimpleFormVuetifyDefault.vue @@ -1,6 +1,10 @@