входа,которая принимает 2 инпута email/username и password.
вход можно совершить с помощью email или username
как вообще валидировать поле где разрешени и username и email?
можно ли как-то переключать валидации? может как-нибудь через when?
на данный момент имею:
export const buildLoginSchema = (t) => yup.object().shape({
loginCredentials: yup
.string()
.matches(/^[a-zA-Z0-9@.\-_]+$/, t('errors:username.InvalidUsername'))
.required(t('errors:credentials.MissingCredentials')),
password: validatePassword(t),
});
в твоем случае нет же признака никакого, что введет пользователь - еймейл или юзернейм, как ты тут when прикрутишь? пиши регэксп который схавает и то и то
Суть в том,что email может содержать спец. символы, а username - нет
можешь добавить кастомное правило yup.addMethod(yup.string, ‘login’, function () { return this.transform(function (value) { return value.email() || // username logic }) })
Обсуждают сегодня