import { Callout, Flex, Spinner, Switch, TextField } from "@radix-ui/themes" import { Array, Option, Struct } from "effect" import { Component, Form, Subscribable } from "effect-fc" import type * as React from "react" export declare namespace TextFieldOptionalFormInputView { export interface Props extends Omit, Form.useOptionalInput.Options { readonly form: Form.Form, ER, EW> } export type Signature =

(props: Props) => React.ReactNode } export const TextFieldOptionalFormInputView = Component.make("TextFieldOptionalFormInputView")(function*( props: TextFieldOptionalFormInputView.Props ) { const input = yield* Form.useOptionalInput(props.form, props) const [issues, isValidating, isCommitting] = yield* Subscribable.useAll([ props.form.issues, props.form.isValidating, props.form.isCommitting, ]) return ( input.setValue(e.target.value)} disabled={!input.enabled || isCommitting} {...Struct.omit(props, "form", "defaultValue")} > {isValidating && } {props.children} {Option.match(Array.head(issues), { onSome: issue => ( {issue.message} ), onNone: () => <>, })} ) }).pipe( Component.withSignature() )