From 9fde8dc57c75b8ef13f2ac526377182d794ead65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Sun, 9 Nov 2025 02:43:27 +0100 Subject: [PATCH] Form example work --- packages/example/src/routes/form.tsx | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/packages/example/src/routes/form.tsx b/packages/example/src/routes/form.tsx index e3de805..409afdf 100644 --- a/packages/example/src/routes/form.tsx +++ b/packages/example/src/routes/form.tsx @@ -23,6 +23,20 @@ const RegisterFormSchema = Schema.Struct({ birth: Schema.OptionFromSelf(DateTimeUtcFromZonedInput), }) +const RegisterFormSubmitSchema = Schema.Struct({ + ...RegisterFormSchema.fields, + email: Schema.transformOrFail( + Schema.encodedSchema(RegisterFormSchema.fields.email), + Schema.typeSchema(RegisterFormSchema.fields.email), + { + decode: (input, _options, ast) => input !== "admin@admin.com" + ? ParseResult.succeed(input) + : ParseResult.fail(new ParseResult.Refinement(ast, input, "Predicate", "This email is already in use.")), + encode: ParseResult.succeed, + }, + ), +}) + class RegisterForm extends Effect.Service()("RegisterForm", { scoped: Form.service({ schema: RegisterFormSchema.pipe(