From db7608f7c374588e8b323ca02f56efd5a6824586 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Sat, 19 Apr 2025 02:00:39 +0200 Subject: [PATCH] Form work --- packages/extension-form/src/internal/FormField.ts | 14 +++++++------- packages/extension-form/src/internal/Formify.ts | 15 --------------- 2 files changed, 7 insertions(+), 22 deletions(-) diff --git a/packages/extension-form/src/internal/FormField.ts b/packages/extension-form/src/internal/FormField.ts index f33818f..b0dd09d 100644 --- a/packages/extension-form/src/internal/FormField.ts +++ b/packages/extension-form/src/internal/FormField.ts @@ -1,4 +1,4 @@ -import type { Array, Schema, SchemaAST } from "effect" +import type { Effect, Schema } from "effect" import type * as Formify from "./Formify.js" @@ -6,11 +6,12 @@ export interface FormField { readonly schema: S } -export interface LiteralFormField< - S extends Schema.Literal, - Literals extends Array.NonEmptyReadonlyArray, -> extends FormField { - readonly value: S["Type"] +export const makeFormField = ( + schema: S, + get: Effect.Effect, + set: (value: S["Type"]) => Effect.Effect, +): FormField => { + } export interface UnionFormField< @@ -50,7 +51,6 @@ export type StructFormField< ) export interface GenericFormField extends FormField { - readonly value: S["Type"] } diff --git a/packages/extension-form/src/internal/Formify.ts b/packages/extension-form/src/internal/Formify.ts index 77a4bd1..05987aa 100644 --- a/packages/extension-form/src/internal/Formify.ts +++ b/packages/extension-form/src/internal/Formify.ts @@ -3,7 +3,6 @@ import type * as FormField from "./FormField.js" export type Formify = ( - S extends Schema.Literal ? FormField.LiteralFormField : S extends Schema.Union ? FormField.UnionFormField : S extends Schema.TupleType ? FormField.TupleFormField : S extends Schema.Array$ ? FormField.ArrayFormField : @@ -50,17 +49,3 @@ switch (loginForm.member._tag) { case "ByPhone": break } - - -const User = Schema.Struct({ - _tag: Schema.tag("User"), - name: Schema.String, - roles: Schema.Tuple(Schema.Literal("Admin"), Schema.Literal("Moderator"), Schema.Literal("User")), - values: Schema.Array(Schema.String), -}) - -type TestFormTree = Formify -declare const testFormTree: TestFormTree - -testFormTree.fields._tag -testFormTree.fields.roles.elements[0].value