169 похожих чатов

Привет, у меня вопрос по yup, может кому приходилось работать.

Делаю асинхронную валидацию поля через .test и она вызывается при изменении любого из полей формы (что, в принципе, задокументировано и ожидаемо), но с точки зрения UX, производительности и элеметарной логики быть такого не должно. Какие есть варианты вызывать test только при изменении определенных полей?

Сама задача заключается в том, что я валидирую код подтверждения почты с помощью запроса на сервер. Нужно триггерить эту асинхронную валидацию только при изменении почты или кода

В issue либы эта проблема обсуждается и там приводилось куча костылей, связанных с отказом от валидационной схемы в принципе и использованием кастомных валидационных функций, но мне интересен один из двух путей:

1) хорошее встроенное решение без костылей
2) отказ от yup в пользу другой более хорошей либы, если есть какие-нибудь варианты

18 ответов

32 просмотра

Асинхронная валидация О_о ??? Это как? (сарказм) Сделай для начала лексический анализ фразы "асинхронная валидация" и всё встанет на свои места.

а вообще бизнес логика в валидации не должна быть как по мне

Veli
и что не так?)

Просто говоря: валидация это cb. А как ты вызываешь cb это уже другое.

Veli- Автор вопроса
Илюша 🎂
а вообще бизнес логика в валидации не должна быть ...

почему валидация не может исходить из бизнес логики? Да есть само собой разумеющиеся и технически необходимые правила, но не вижу причин не делать более продвинутые правила, которые конкретно от проекта зависят. По сути от асинк валидации тогда вообще смысла нет, если там нельзя бизнес логику располагать я могу это, конечно, при сабмите или вообще на беке проверять, но с точки зрения интерфейса как-то поприкольнее выглядит именно с таким форматом валидации я приложил видео, что я ожидаю от интерфейса

Veli- Автор вопроса
Veli
ладно, держи в курсе

напиши тесты, все поймешь

херня, надо делать проверку при отправке, т. к. твой вариант тупо брутфорсить можно ты бы ещё пароль таким же способом валидировал) ну и смысл от кнопки "проверить код", если он итак при вводе проверяется?

Veli- Автор вопроса
Илюша 🎂
херня, надо делать проверку при отправке, т. к. тв...

боже, какие же вы тут все умненькие и любите отвечать на то, что вас не спрашивали ты вообще понимаешь, что такое код проверки мейла и зачем его проверяют?) Это исключительно фича для клиента, чтобы он случайно не ввел левый мейл и ему на левый мейл не зарегистрировало аккаунт. Иди и брутфорсь, если хочешь, что тебе это даст? намного быстрее письмо проверить, чем брутить комбинацию из 5 цифр хорошо, допустим, я сделаю при самбите, на самбите ее брутфорсить нельзя будет? где ты увидел кнопку «проверить код» вообще? хватит надумывать себе что-то и отвечать на это, умоляю, ответьте на конкретный вопрос или не отвечайте вообще

Veli
боже, какие же вы тут все умненькие и любите отвеч...

на сабмите можно будет сделать попытки ввода хотя бы не проверить код, а "отправить код", сути не меняет

Veli- Автор вопроса
Илюша 🎂
на сабмите можно будет сделать попытки ввода хотя ...

а так нельзя будет сделать? Валидация происходит тогда, когда ты ввел ровно 5 символов. Если ты будешь стирать и вводить заново, я могу запретить тебе возможность временно это делать на многих сервисах валидация кода происходит именно после ввода всех символов, а не после кнопки отправить. Та же авторизация в телеге, где безопасность, к слову, вообще нужна. У меня - не нужна

Veli
а так нельзя будет сделать? Валидация происходит т...

а если человек опечатался на первой цифре? ну и про телегу: если и есть места, где надо вводить код из смс, то на экране отображается только поле ввода для этого кода и всё, нет лишних кнопок/полей

Veli- Автор вопроса
Илюша 🎂
а если человек опечатался на первой цифре? ну и п...

если он опечатался на первой цифре, он точно так же нажмет сабмит и только потом об этом узнает… Ровно такая же ситуация. Можно дать те же 10 попыток какие-нибудь + там стоит дебаунс + безопасность тут не нужна отправить код - это отправить код проверки на почту, чтобы юзер его там получил и ввел в поле. Возможно, эту кнопку надо перенести к полю эмейл, а не к полю код, либо разделить на степы, но это не ко мне уже вопрос, а к дизайну

Veli
если он опечатался на первой цифре, он точно так ж...

"но это не ко мне уже вопрос, а к дизайну " зови дизайнера, сейчас решим

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта