The one aspect where I deviate from the docs is the :required and that is also what I struggle with:
If i do not add any label and hit “save”, the changeset correctly evaluates an error (labels: {"can't be blank", [validation: :required]}), but there is no feedback in the interface (except the fact that I am still in the form).
All other errors get displayed (missing id for the project or missing language or text for the Translation).
Are you asking about rate limiting? Setting the debounce on the field will add a delay. Also, not having a phx-change event evaluate, i.e. only checking on submit.
I’d just start with a changeset without errors and not depend on the input dirty tracking LV does on the client. There’s no “input” for the whole collection anyways.
You both mean: I could remove phx-change="validate" from my form, correct? Problem: Then the whole input_for/1 logic concerning dynamically adding and removing entries stops working.
In my case I’d have a :required on the :notifications in the list schema. The interface feedback works without any problems for both missing :title in List and missing :email in EmailNotification etc…
The only case I struggle is the error when :notifications is an empty list.