Всем привет! Столкнулся с проблемой. Есть форма из N филдов. Некоторые из них опциональны. И вот когда определенный филд, назовем его X === true тогда отображаются еще дополнительно два филда который обязательны к заполнению. В противном случае, если фолс, они не обязательны. И вот вроде бы все ок работает, но проблема в том, что если X сделать true перед заполнением всех обязательных полей - тогда эти два поля не подсвечиваются как обязательные. А если наоборот - подсвечиваются. Какой то чтоли баг, не знаю. Сталкивался кто нибудь? Ощущение что рефайн как будто бы срабатывает в конце только если нет ошибок в основной схеме.
Если куском кода то схема примитивная в основном, единственное в конце вот superRefine используется для этих целей:
.superRefine((values, ctx) => {
if (!!values.isAdmin && !values.roles?.length) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: 'Обязательно',
path: ['roles'],
});
}
});