import { useStore } from '@tanstack/react-form'
import { useFieldContext, useFormContext } from '#/hooks/demo.form-context'
export function SubscribeButton({ label }: { label: string }) {
const form = useFormContext()
return (
state.isSubmitting}>
{(isSubmitting) => (
)}
)
}
function ErrorMessages({
errors,
}: {
errors: Array
}) {
return (
<>
{errors.map((error) => (
{typeof error === 'string' ? error : error.message}
))}
>
)
}
export function TextField({
label,
placeholder,
}: {
label: string
placeholder?: string
}) {
const field = useFieldContext()
const errors = useStore(field.store, (state) => state.meta.errors)
return (
{field.state.meta.isTouched && }
)
}
export function TextArea({
label,
rows = 3,
}: {
label: string
rows?: number
}) {
const field = useFieldContext()
const errors = useStore(field.store, (state) => state.meta.errors)
return (
{field.state.meta.isTouched && }
)
}
export function Select({
label,
values,
}: {
label: string
values: Array<{ label: string; value: string }>
placeholder?: string
}) {
const field = useFieldContext()
const errors = useStore(field.store, (state) => state.meta.errors)
return (
{field.state.meta.isTouched && }
)
}