Git Product home page Git Product logo

Comments (5)

jaredLunde avatar jaredLunde commented on September 21, 2024

Yeah this is definitely a bug. Will have to think on how best to fix it considering the visitor will only be called when atoms are found.

Addressing the idea of an "array field" type - I do not agree with the approach of validating the array as a field in something like Zod as opposed using .slice() in your user code and validating each field individually:

  • From a UX standpoint you are creating a subpar experience if you're letting users do things they aren't allowed to anyway (i.e. click a button to add a field you KNOW is going to fail validation). You shouldn't give your users footguns. If you want to validate it in spite of that, you could in theory accomplish that in the onSubmit function, as in general you seem to favor shape validations rather than field validations. I don't think there's anything wrong with that conceptually, I just don't consider it a core task of a "form" library, particularly one that aims to be bottom-up.
  • From a practicality standpoint, there's no such thing as an "array input". Backends are the ones that interpret particular field names as arrays. So the way it exists in the library is just covering the case of "you want your data in a particular shape".

So IMO your "validation" should really just be bounded configuration on an component or whatever.

from form-atoms.

github-actions avatar github-actions commented on September 21, 2024

🎉 This issue has been resolved in version 2.0.0-next.2 🎉

The release is available on:

Your semantic-release bot 📦🚀

from form-atoms.

MiroslavPetrik avatar MiroslavPetrik commented on September 21, 2024

Works as expected with the next version. Thank you!

I've found a bug. Currently it does not work when array contains another array.

Here is a demo where you could possibly have multiple cities in a form, and for each city multiple people/occupants:
(there is no UI, just static initial data)
https://codesandbox.io/s/form-atoms-v2-array-field-in-array-field-bug-76fvov?file=/src/App.tsx

the submit value is

{
  cities: [
    {
      "1": { name: "Asdfgard", people: [{ name: "Thorus" }] },
      name: "Atlantits",
      people: [{ name: "Shrek" }],
    },
  ],
}

while expected:

{
  cities: [
    { name: "Asdfgard", people: [{ name: "Thorus" }] },
    { name: "Atlantits", people: [{ name: "Shrek" }] },
  ]
}

from form-atoms.

jaredLunde avatar jaredLunde commented on September 21, 2024

Will address this, thanks!

from form-atoms.

github-actions avatar github-actions commented on September 21, 2024

🎉 This issue has been resolved in version 2.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

from form-atoms.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.