File Validation

๐Ÿฆบ I'm not too pleased with the fact that we're just ignoring TypeScript. Remember:
TypeScript isn't making your life worse. It's just showing you how bad your life already is.
โ€“ me
Currently, users could upload whatever they want to our server and we don't validate anything at all, so it could lead to pretty broken experiences.
We've already got Zod setup in this form, we just need to add support for the imageId, file, and altText fields.
To help you with the Zod schema, you may checkout the Conform docs on File Uploads. Here's a snippet from that example:
const schema = z.object({
	profile: z.instanceof(File, { message: 'Profile is required' }),
})
In our case, the file is optional since the user may just be updating an existing file. But we do want to warn the user if they're going to try and upload a file that's too large, so for our refine call, we can just check that the file.size isn't too big.
Note: The File class is a browser API and not typically available in Node.js. However Remix polyfills this for us (check out where we use installGlobals from Remix).
We'll get to actually displaying errors later on.
If you're trying to submit the form and nothing is happening, it could be an error that's preventing the form from submitting. But you'll not see the errors until we add those. Until then, you can comment out the onValidate function to prevent client-side validation and check out errors in the network tab.
With that, you should be good to go on this one!
Login to get access to the exclusive discord channel.
  • 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 ยท 20 days 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
    Welcome to EpicWeb.dev! Say Hello ๐Ÿ‘‹
    Kent C. Dodds โ—† ๐Ÿš€๐Ÿ†๐ŸŒŒ:
    This is the first post of many hopefully!
    • 17
    78 ยท 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 ยท 10 months 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 ยท 2 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 ยท 3 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 ยท 4 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...
    2 ยท 4 months 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 ยท 4 months 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 ยท 5 months ago
  • ๐Ÿ”ญfoundations
    ๐Ÿ’พdata
    general
    ๐Ÿ“forms
    ๐Ÿ”auth
    Native Logging
    trendaaang ๐ŸŒŒ:
    I was thinking that it could be useful to log every CRUD operation to help track down errors. Is tha...
    • โœ…1
    6 ยท 5 months ago
  • ๐Ÿ“forms
    File upload `unstable_parseMultipartFormData` vs `File`
    QzCurious ๐ŸŒŒ:
    I'd like to ask why we want to use `unstable_parseMultipartFormData` at first place? It seems to me ...
    • โœ…1
    8 ยท 5 months ago
  • ๐Ÿ“forms
    Purpose of conform.fieldset() in the excercise
    blue_cat_blues ๐ŸŒŒ ๐Ÿš€:
    In the solution for Web forms 05/01 (complex structures/ nested objects) there is a call to `conform...
    • โœ…1
    4 ยท 5 months ago
  • ๐Ÿ“forms
    I think conform removed their docs for react
    Antonio ๐Ÿš€ ๐ŸŒŒ:
    Hey I'm watching the Forms course and on /03/03 seems like the https://conform.guide/api/react link ...
    • โœ…1
    15 ยท 6 months ago
  • ๐Ÿ’พdata
    ๐Ÿ“forms
    Issues with child routes when loading a modal with actions (server/client)
    OtterlyPunk:
    I've set up a mini-project to go through the first set of videos and I'm having issues with the form...
    • โœ…1
    7 ยท 6 months ago
  • general
    The video play is pretty laggy currently
    QzCurious ๐ŸŒŒ:
    I thought I should tag you for this <@105755735731781632>. Please take a look if something wrong.
    • โœ…2
    9 ยท 6 months ago
  • general
    New Workshop Scheduled
    Kent C. Dodds โ—† ๐Ÿš€๐Ÿ†๐ŸŒŒ:
    Hey Epic Web devs! I wanted to let you know before everyone else on here: https://www.epicweb.dev/ev...
    • 2
    0 ยท 6 months ago
  • ๐Ÿ“forms
    aria-invalid="false"
    Antonio ๐Ÿš€ ๐ŸŒŒ:
    Hey I'm currently going through the Accessibility module on the forms workshop, and in the exercise ...
    • โœ…1
    14 ยท 6 months ago
  • ๐Ÿ“forms
    Upgrade Conform v1
    JsPark ๐ŸŒŒ ๐Ÿš€:
    Are you planning to upgrade the conform library used in the web-forms repository to v1? The exercise...
    • โœ…1
    1 ยท 7 months ago
  • general
    Deploying an exercise
    Khoi ๐Ÿš€ ๐ŸŒŒ:
    Dear <@105755735731781632> , First of all, I really appreciate your effort in building this EPIC cou...
    • โœ…1
    1 ยท 6 months ago
  • general
    "Start App" throws error: Error: Cannot add empty string to PrefixLookupTrie
    Martin ๐ŸŒŒ:
    โœ— npm run start > start > kcdshop start [playground:4000] [playground:4000] > dev [playground:4000...
    • โœ…1
    7 ยท 10 months ago
  • general
    ๐Ÿ“forms
    Can't start the playground
    trendaaang ๐ŸŒŒ:
    Been a minute since I last worked on this course. Just tried running the app and was notified that t...
    • โœ…1
    3 ยท 7 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...
    • โœ…1
    12 ยท 6 months ago
  • general
    Question about the Workshop App tabs
    sjollivier ๐ŸŒŒ:
    Just started the course. I might have missed this in the Getting Started video, but how should I be ...
    • โœ…1
    1 ยท 7 months ago