precognition icon indicating copy to clipboard operation
precognition copied to clipboard

Issues with async validation and wizard

Open aalyusuf opened this issue 5 months ago • 0 comments

Laravel Precognition Plugin Version

0.5.8

Laravel Version

11.0

Plugin

Vue w/ Inertia

Description

This is slightly similar to #95 but I'd like to highlight the issue I'm facing with wizard use-case.

In the below example from #69 & Laravle docs, onSuccess() wouldn't trigger if the inputs have already been validated

<Button 
    @click="form.touch(['name', 'email', 'address', 'phone']).validate({
        onSuccess: () => nextPage(),
        onValidationError: () => notify('You have validation errors'),
    })"
>
    Next
</Button>

This means we cannot mix @change="form.validate('any') on an input alongside the button because all of the would have all been validated.

Also makes it difficult to have a previous button in a wizard.

This would have been a quick/clean thing to solve if form.valid() can validate an array instead of one key at a time or to have onValid() in validate.

Steps To Reproduce

function nextStep() {

    const formElements = [
        ["first_name", "last_name"],
        ["email", "password"],

    ];

    form.touch(formElements[activeStep.value]).validate({
        onSuccess: () => {
            activeStep.value += 1;
        }
    });

}

aalyusuf avatar Sep 11 '24 16:09 aalyusuf