Nested Object

So far we've just put the image information as properties on our NoteEditorSchema, but the id, file, and altText fields are really all just part of a single object: An image. So it would be better to represent this as a nested set of field properties under the NoteEditorSchema under image.
However, because forms don't support nested objects, we'll need to use a utility from Conform to help us out. Here's an example that resembles what you'll be doing:
// example inspired from the Conform docs
import {
	useForm,
	useFieldset,
	conform,
	type FieldConfig,
} from '@conform-to/react'

function Example() {
	const [form, fields] = useForm<Schema>({
		// ... config stuff including the schema
	})

	return (
		<form {...form.props}>
			<AddressFields config={fields.address} />
		</form>
	)
}

function AddressFields({ config }: { config: FieldConfig<Address> }) {
	const ref = useRef<HTMLFieldSetElement>(null)
	const fields = useFieldset(ref, config)
	return (
		<fieldset ref={ref}>
			<input {...conform.input(fields.street)} />
			<input {...conform.input(fields.zipcode)} />
			<input {...conform.input(fields.city)} />
			<input {...conform.input(fields.country)} />
		</fieldset>
	)
}
We'll also get our type by using Zod's inference utility:
const RocketSchema = z.object({
	// ...
})
type RocketType = z.infer<typeof RocketSchema>

function RocketFields({ config }: { config: FieldConfig<RocketType> }) {
	// ...
}
So, fundamentally, we want to make this change:
{
	title: string
	content: string
	imageId: string
	file: File
	altText: string
	image: {
		id: string
		file: File
		altText: string
	}
}
And we want that hooked up to our form. That should be enough to get you going!
Login to get access to the exclusive discord channel.
  • general
    Epic stack using tanstack form
    wargha ๐Ÿš€ ๐ŸŒŒ:
    https://github.com/epicweb-dev/epic-stack/compare/epicweb-dev:main...wargha:feature/tanstack-form-ex...
    • โœ…1
    3 ยท 7 days ago
  • general
    Init command outdated on the EpicWeb website
    Virgile ๐Ÿ† ๐ŸŒŒ:
    Hi everyone. I've initialized a new epic-stack project yesterday. Following instructions from http...
    • โœ…1
    3 ยท 11 days ago
  • general
    Mark as complete, resets the first time you click it.
    Daniel V.C ๐Ÿš€ ๐ŸŒŒ:
    Not sure if anyone else has had this issue, as i've not seen anyone else talk about it, but I find ...
    • โœ…1
    8 ยท 17 days ago
  • general
    Keeping Epic Stack Projects Free on Fly โ€“ Any Tips?
    wargha ๐Ÿš€ ๐ŸŒŒ:
    Iโ€™ve been experimenting with the Epic Stack and deploying some dummy projects on Fly. I noticed that...
    • โœ…1
    0 ยท a month ago
  • general
    epic stack website initial load at home page is unstyled (sometimes)
    osmancakir ๐Ÿš€ ๐ŸŒŒ:
    Sometimes (especially when it is loaded first time on a new browser etc.) I see this unstyled versio...
    10 ยท 14 days ago
  • ๐Ÿ’พdata
    general
    ๐Ÿ“forms
    ๐Ÿ”ญfoundations
    double underscore?
    trendaaang ๐ŸŒŒ:
    What with the `__note-editor.tsx`? I don't see that in the Remix docs and I don't remember Kent talk...
    • โœ…1
    2 ยท a year ago
  • general
    Welcome to EpicWeb.dev! Say Hello ๐Ÿ‘‹
    Kent C. Dodds โ—† ๐Ÿš€๐Ÿ†๐ŸŒŒ:
    This is the first post of many hopefully!
    • 18
    81 ยท 2 years ago
  • ๐Ÿ“forms
    Schema Validation- Native HTML Validation?
    edpau ๐Ÿš€:
    I just finished Schema Validation, 03. Conform form utils, I disabled JavaScript, removed the conten...
    • โœ…1
    2 ยท 2 months ago
  • ๐Ÿ’พdata
    general
    ๐Ÿ“forms
    ๐Ÿ”ญfoundations
    Creating Notes
    Scott ๐ŸŒŒ ๐Ÿ†:
    Does anybody know in what workshop we create notes? I would like to see the routing structure. So fa...
    • โœ…1
    2 ยท 3 months ago
  • ๐Ÿ”ญfoundations
    ๐Ÿ’พdata
    general
    ๐Ÿ“forms
    ๐Ÿ”auth
    Thank you for the inspiration
    Binalfew ๐Ÿš€ ๐ŸŒŒ:
    <@105755735731781632> I wanted to thank you for the incredible knowledge I gained from your Epic Web...
    • โค๏ธ1
    1 ยท 3 months ago
  • general
    npm install everytime I setup a new playground
    Duki ๐ŸŒŒ:
    Is it normal that I have to run `npm install` in my playground directory, everytime I setup the play...
    • โœ…1
    2 ยท 6 months ago
  • ๐Ÿ“forms
    Review - Professional Web Forms
    Baghira ๐ŸŒŒ:
    So I finished the second workshop last week. I wnated to digest and let some timepast before I wante...
    • โœ…1
    1 ยท 7 months ago
  • ๐Ÿ’พdata
    ๐Ÿ“forms
    ๐Ÿ”ญfoundations
    Reviewing foundations, Mutations, Actions
    silvanet ๐Ÿš€ ๐ŸŒŒ:
    Forgive me for this. I went over the file size limit. I don't want to sign up for being able to exce...
    • โœ…1
    2 ยท a year ago
  • general
    Migration to Vite: Server-only module referenced by client
    Fabian ๐ŸŒŒ:
    Hi, I'm working on migrating to Vite following the remix docs (https://remix.run/docs/en/main/guides...
    • โœ…1
    1 ยท 8 months ago
  • ๐Ÿ’พdata
    ๐Ÿ“forms
    Getting a TS error that is not present in the course files
    OtterlyPunk:
    So I'm working in parallel and I'm feeling the problem is I'm using a new version of something in my...
    • โœ…2
    12 ยท a year ago
  • general
    Remix Vite Plugin
    Binalfew ๐Ÿš€ ๐ŸŒŒ:
    <@105755735731781632> Now that remix officially supports vite (though not stable) what does it mean...
    • โœ…1
    3 ยท a year ago
  • general
    ๐Ÿ”ญfoundations
    Solutions video on localhost:5639 ?
    quang ๐Ÿš€ ๐ŸŒŒ:
    Hi, so I'm having a hard time navigating (hopefully will be better with time) The nav on epicweb.de...
    • โœ…1
    9 ยท a year ago
  • ๐Ÿ“forms
    Loading into disk
    DiogoVaz ๐ŸŒŒ:
    I am going through the File Upload section and I completely understand the benefits of loading the a...
    • โœ…1
    2 ยท 9 months ago
  • general
    Epicshop is now social and mobile friendly!
    Kent C. Dodds โ—† ๐Ÿš€๐Ÿ†๐ŸŒŒ:
    I'm excited to announce that now the Epic Web workshops are mobile friendly! https://foundations.ep...
    • ๐ŸŽ‰2
    0 ยท 10 months ago
  • ๐Ÿ’พdata
    ๐Ÿ“forms
    ๐Ÿ”ญfoundations
    How can I do this?
    silvanet ๐Ÿš€ ๐ŸŒŒ:
    Viewing the Intro (from the Workshop) for Mutations, the course has an embedded video where Kent exp...
    • โœ…1
    3 ยท a year ago
  • ๐Ÿ“forms
    Unable to start the playground
    Payapula ๐Ÿš€ ๐ŸŒŒ:
    Today morning I have updated the workshop for web-form - https://github.com/epicweb-dev/web-forms/co...
    • โœ…1
    16 ยท a year ago