From ef137d07f79e9964aff04c514d72e975a794d63f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Tue, 30 Sep 2025 20:38:46 +0200 Subject: [PATCH] Tests --- packages/example/src/routes/form.tsx | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/example/src/routes/form.tsx b/packages/example/src/routes/form.tsx index 4f7f831..4653e1f 100644 --- a/packages/example/src/routes/form.tsx +++ b/packages/example/src/routes/form.tsx @@ -2,7 +2,7 @@ import { TextFieldFormInput } from "@/lib/form/TextFieldFormInput" import { runtime } from "@/runtime" import { Button, Container, Flex } from "@radix-ui/themes" import { createFileRoute } from "@tanstack/react-router" -import { Effect, Schema } from "effect" +import { Effect, ParseResult, Schema } from "effect" import { Component, Form } from "effect-fc" import { useContext, useSubscribables } from "effect-fc/hooks" @@ -24,7 +24,14 @@ const RegisterFormSchema = Schema.Struct({ class RegisterForm extends Effect.Service()("RegisterForm", { scoped: Form.service({ - schema: RegisterFormSchema, + schema: Schema.transformOrFail( + Schema.encodedSchema(RegisterFormSchema), + Schema.typeSchema(RegisterFormSchema), + { + decode: v => Effect.andThen(Effect.sleep("500 millis"), ParseResult.succeed(v)), + encode: v => Effect.andThen(Effect.sleep("500 millis"), ParseResult.succeed(v)), + }, + ), initialEncodedValue: { email: "", password: "" }, submit: () => Effect.andThen( Effect.sleep("500 millis"), @@ -49,12 +56,12 @@ class RegisterPage extends Component.makeUntraced("RegisterPage")(function*() {