0.1.3 #4
@@ -1,20 +1,22 @@
|
|||||||
import { TextField } from "@radix-ui/themes"
|
import { TextField } from "@radix-ui/themes"
|
||||||
import { Effect } from "effect"
|
import { Effect, Schema } from "effect"
|
||||||
import { Component } from "effect-fc"
|
import { Component } from "effect-fc"
|
||||||
import { useInput } from "effect-fc/hooks"
|
import { useInput } from "effect-fc/hooks"
|
||||||
import { JSX } from "react"
|
|
||||||
|
|
||||||
|
|
||||||
export namespace TextInput {
|
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(
|
export const TextInput = <A, R>(schema: Schema.Schema<A, string, R>) => Component.make(
|
||||||
Effect.fnUntraced(function* TextInput <A, R>(props: TextInput.Props<A, R>) {
|
Effect.fnUntraced(function*(props: TextInput.Props<A, R>) {
|
||||||
const input = yield* useInput(props)
|
const input = yield* useInput({ ...props, schema })
|
||||||
return <></>
|
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