Неужели невозможно заставить зод валидировать динамически(по условию)?
Столкнулся с такой проблемой в zod. Все было хорошо, пока не понадобилось добавить условную валидацию. Нужно сделать одно поле обязательным если значение другого true например. SuperRefine как бы подходит но есть два нюанса:
1. Он срабатывает только если заполнить все обязательные поля. А если я сразу хочу скажем увидеть ошибку?
2. Даже после заполнения обязательных полей в начале, форма все равно не валидна. Приходится тыкать чекбокс
3. Единственное более менее решение - сделать все обязательные филды опциональными и валидировать в рефайне. Но тогда вобще какой в этом смысл весь
1. Без дополнительного useEffect, который смотрит поле hasAddress и делает form.trigger - не срабатывает//react-hook-form
2. А если несколько пар будет?
szQocks, да, ты прав. Тогда через костыли получилось как то. А щас снова пришлось искать его... А касательно яп - да, но в проект тащить яп когда уже использовался зод иметь оба - такое себе...
GaserV, раз форм много, то конечно уж не стоит переходить на formik, сделай костыль какой-нибудь, что бы изменении чекбокса, менялась схема в zodResolver, думаю такой вариант тебя устроит ( имею ввиду прямо захардкодить этот нюанс на onChange в чекбоксе и всё ), скорее всего там понадобится хранить схему в стейта над хуком формы и в zodResolver слушать стейт ( пробуй варианты ) чё ещё делать)
в гугле кстати инфы вообще об этом нет, как не странно, либо тоже костыли)