Skip to content

Conversation

@DimaDevelopment
Copy link

Hi there! 👋

I’m the developer of [Wandry UI](http://ui.wandry.com.ua/) — a shadcn registry collection of fully controlled form components.

I’d like to suggest integrating it into the starter kit.
Here’s why it could be beneficial:

  1. Much less boilerplate code.
    For example, instead of writing something like this:

    <div className="grid gap-2">
      <Label htmlFor="email">Email address</Label>
      <Input
        id="email"
        type="email"
        name="email"
        required
        autoFocus
        tabIndex={1}
        autoComplete="email"
        placeholder="[email protected]"
      />
      <InputError message={errors.email} />
    </div>

    You can simply use the component:

    <TextField
      name="email"
      label="Email address"
      type="email"
      autoFocus
      autoComplete="email"
      placeholder="[email protected]"
    />
  2. Built-in state management.
    Components automatically handle setValue internally, so you don’t need to manage form state manually.

  3. Global access to form values.
    You can access form values from any child component.
    For example, if you want to create an AddressField component that updates the list of cities based on the selected country, you can do:

    import { useWatch } from '@wandry/inertia-form';
    
    export const AddressField = () => {
      const country = useWatch("country_code", { defaultValue: "en" });
      const countryCities = cities.filter(c => c.country_code === country);
    
      return (
        <>
          <SelectField
            name="country_code"
            options={countries.map(country => ({
              value: country.code,
              label: country.name
            }))}
          />
          <SelectField
            name="city"
            options={countryCities.map(city => ({
              value: city.id,
              label: city.name
            }))}
          />
        </>
      );
    };
  4. Built-in SubmitButton.
    It already includes loading, disabled, and type="submit" handling — just drop it in and it works out of the box.

  5. Automatic error handling.
    Validation errors returned from the backend are automatically displayed under the corresponding fields.

  6. Field and error reset support.

I’ve refactored all existing forms using wandry-ui and @wandry/inertia-form.

@taylorotwell, @joetannenbaum, @hugosaintemarie, Would love to hear your thoughts on this!

@DimaDevelopment DimaDevelopment marked this pull request as draft October 29, 2025 09:15
@pushpak1300
Copy link
Member

Thanks for your pull request!

Unfortunately, I'm going to delay merging this code for now. To preserve our ability to adequately maintain this starter kit, we need to be very careful regarding the amount of code we include.

If applicable, please consider releasing your code as an additional starter kit so that the community can still take advantage of your contributions!

@DimaDevelopment
Copy link
Author

DimaDevelopment commented Oct 29, 2025

@pushpak1300,
Okay, thanks for the reply!

If you have a bit of time, I’d really appreciate it if you could take a look at what I’m trying to integrate:
👉 http://ui.wandry.com.ua/

@wandry-ui - A set of open source fully controlled React Inertia form elements

It’d be awesome to get your feedback!

If you prefer to reach out somewhere other than GitHub, here’s my X https://x.com/kapish_dima

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants