0.2.1 #26

Merged
Thilawyn merged 144 commits from next into master 2025-12-01 23:37:40 +01:00
Showing only changes of commit 5f85938449 - Show all commits

View File

@@ -24,17 +24,18 @@ const RegisterFormSchema = Schema.Struct({
})
const RegisterFormSubmitSchema = Schema.Struct({
...RegisterFormSchema.fields,
email: Schema.transformOrFail(
Schema.encodedSchema(RegisterFormSchema.fields.email),
Schema.typeSchema(RegisterFormSchema.fields.email),
Schema.String,
Schema.String,
{
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.")),
: ParseResult.fail(new ParseResult.Type(ast, input, "This email is already in use.")),
encode: ParseResult.succeed,
},
),
password: Schema.String,
birth: Schema.OptionFromSelf(Schema.DateTimeUtcFromSelf),
})
class RegisterForm extends Effect.Service<RegisterForm>()("RegisterForm", {
@@ -55,7 +56,7 @@ class RegisterForm extends Effect.Service<RegisterForm>()("RegisterForm", {
initialEncodedValue: { email: "", password: "", birth: Option.none() },
onSubmit: Effect.fnUntraced(function*(v) {
yield* Effect.sleep("500 millis")
return v
return yield* Schema.decode(RegisterFormSubmitSchema)(v)
}),
debounce: "500 millis",
})