если бы ты кинул код - было бы проще
1-ое зачем передавать repeatPassword (он может быть только равен password)
2- ое точно нужно пользователю показывать все алерты) может имеет смысл после каждого алерта делать return
(else вообще зло) и уйдет переменная valid
3-е (вкусовщина) - я бы разбил на 2 функции - первая (validate) возвращает массив строк - сообшений, а вторая основная ее использует и валидность проверяет на пустой возврат из функции
() => {
const alerts = validate()
if (alerts.length === 0) {
dispatch(....)
}
}