import { Callout, Flex, TextArea, TextAreaProps } from "@radix-ui/themes" import { Option, ParseResult, Schema, Struct } from "effect" import { Component } from "effect-fc" import { useInput } from "effect-fc/hooks" import * as React from "react" export interface TextAreaInputProps extends Omit, "schema">, Omit {} export const TextAreaInput = ( schema: Schema.Schema ): Component.Component< TextAreaInputProps, React.JSX.Element, ParseResult.ParseError, R > => Component.makeUntraced(function* TextFieldInput(props) { const input = yield* useInput({ schema, ...props }) const issues = React.useMemo(() => Option.map( input.error, ParseResult.ArrayFormatter.formatErrorSync, ), [input.error]) return ( {Option.isSome(issues) &&
    {issues.value.map((issue, i) =>
  • {issue.message}
  • )}
}