@@ -1,20 +1,22 @@
|
||||
import { TextField } from "@radix-ui/themes"
|
||||
import { Effect } from "effect"
|
||||
import { Effect, Schema } from "effect"
|
||||
import { Component } from "effect-fc"
|
||||
import { useInput } from "effect-fc/hooks"
|
||||
import { JSX } from "react"
|
||||
|
||||
|
||||
export namespace TextInput {
|
||||
export interface Props<A, R> extends useInput.Options<A, R>, TextField.RootProps {}
|
||||
export interface Props<A, R> extends Omit<useInput.Options<A, R>, "schema">, TextField.RootProps {}
|
||||
}
|
||||
|
||||
export class TextInput extends Component.make(
|
||||
Effect.fnUntraced(function* TextInput <A, R>(props: TextInput.Props<A, R>) {
|
||||
const input = yield* useInput(props)
|
||||
return <></>
|
||||
export const TextInput = <A, R>(schema: Schema.Schema<A, string, R>) => Component.make(
|
||||
Effect.fnUntraced(function*(props: TextInput.Props<A, R>) {
|
||||
const input = yield* useInput({ ...props, schema })
|
||||
return (
|
||||
<TextField.Root
|
||||
{...props}
|
||||
>
|
||||
|
||||
</TextField.Root>
|
||||
)
|
||||
})
|
||||
).pipe(
|
||||
Component.withFunctionComponentSignature<<A, R>(props: TextInput.Props<A, R>) => JSX.Element>()
|
||||
) {}
|
||||
TextInput["~Error"]
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user