Type error in createServerValidate when using discriminated union schemas
Stackblitz: https://stackblitz.com/edit/tanstack-form-tnj3qpfd?file=src%2Findex.tsx
import { createServerValidate, formOptions } from '@tanstack/react-form/remix';
import { z } from 'zod';
const UnionFoo = z.object({ discriminator: z.literal('foo'), foo: z.string() });
const UnionBar = z.object({ discriminator: z.literal('bar') });
const ExampleSchema = z.discriminatedUnion('discriminator', [
UnionFoo,
UnionBar,
]);
const formDefaultValues: z.input<typeof ExampleSchema> = {
discriminator: 'foo',
foo: 'example',
};
const formOpts = formOptions({
/* Works with the casting below. Is this the preferred way? */
defaultValues: formDefaultValues /* as z.input<typeof ExampleSchema> */,
validators: {
onChange: ExampleSchema,
},
});
// Type error
const serverValidate = createServerValidate({
...formOpts,
onServerValidate: (values) => {
console.log(values);
},
});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