type FormProps = HTMLAttributes<HTMLFormElement> & {
formOptions: FormOptions<Record<string, unknown>, typeof zodValidator>;
};
type FormTextInputProps = HTMLAttributes<HTMLInputElement> & {
name: string;
label: string;
};
type FormComponentProps = ForwardRefExoticComponent<FormProps> & {
TextInput: ForwardRefExoticComponent<FormTextInputProps>;
};
type FormContextProps = FormApi<Record<string, unknown>, typeof zodValidator>;
const FormContext = createContext<FormContextProps>({} as FormContextProps);
const Form = forwardRef<HTMLFormElement, FormProps>(
({ className, formOptions, ...props }, ref) => {
const HeadlessForm = useForm({
validatorAdapter: zodValidator,
...formOptions,
});
return (
<FormContext.Provider value={HeadlessForm}>
<HeadlessForm.Provider>
<form
className={className}
onSubmit={(e) => {
e.preventDefault();
e.stopPropagation();
void HeadlessForm.handleSubmit();
}}
ref={ref}
{...props}
/>
</HeadlessForm.Provider>
</FormContext.Provider>
);
},
) as FormComponentProps;You can now submit your website/app/project to http://TanStack.com 's new showcase and have it seen by the TanStack community! - Global showcase browser - Per-library filters - Category filters Submit here: https://tanstack.com/showcase/submit View all here: https://tanstack.com/showcase
dry-scarlet · 2w ago
TanStack AI Alpha 2 is here! 🖼️ Image, video, audio, speech, transcription, structured output 📦 Split adapters = smaller bundles, faster dev/contributions, easier 🎄 Fully tree shakable adapters ✨ Cleaner, flattened, fully type-safe APIs https://tanstack.com/blog/tanstack-ai-alpha-2
dry-scarlet · 4w ago
📣 TanStack AI Alpha is here! ✨ Framework agnostic 🤖 Provider agnostic 🧠 Type safe 🔧 Isomorphic tools 🛠 Devtools 🌐 Open protocol 📦 JS, Python, PHP ⚛️ React, Solid, Vanilla 🌀 OpenAI, Anthropic, Gemini, Ollama, ++ Official blog post: https://tanstack.com/blog/tanstack-ai-alpha-your-ai-your-way Docs: https://tanstack.com/ai
dry-scarlet · 2mo ago