поле email при несуществовании не влияет на ФК
This commit is contained in:
parent
b1c3ab7314
commit
f330c5c05a
@ -122,13 +122,23 @@ export const ContactForm = ({ currentQuestion, onShowResult }: Props) => {
|
|||||||
async function handleShowResultsClick() {
|
async function handleShowResultsClick() {
|
||||||
const FC = settings.cfg.formContact.fields;
|
const FC = settings.cfg.formContact.fields;
|
||||||
|
|
||||||
if (!isDisableEmail && FC["email"].used !== EMAIL_REGEXP.test(email)) {
|
// Проверяем email только если поле отображается
|
||||||
|
if (isEmailFieldVisible && !EMAIL_REGEXP.test(email)) {
|
||||||
return enqueueSnackbar("Incorrect email entered");
|
return enqueueSnackbar("Incorrect email entered");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fireOnce.current) {
|
if (fireOnce.current) {
|
||||||
if (name.length === 0 && email.length === 0 && phone.length === 0 && text.length === 0 && adress.length === 0)
|
// Проверяем, что хотя бы одно видимое поле заполнено
|
||||||
|
const hasVisibleFieldsFilled =
|
||||||
|
(isNameFieldVisible() && name.length > 0) ||
|
||||||
|
(isEmailFieldVisible && email.length > 0) ||
|
||||||
|
(isPhoneFieldVisible() && phone.length > 0) ||
|
||||||
|
(isTextFieldVisible() && text.length > 0) ||
|
||||||
|
(isAddressFieldVisible() && adress.length > 0);
|
||||||
|
|
||||||
|
if (!hasVisibleFieldsFilled) {
|
||||||
return enqueueSnackbar(t("Please fill in the fields"));
|
return enqueueSnackbar(t("Please fill in the fields"));
|
||||||
|
}
|
||||||
|
|
||||||
//почта валидна, хоть одно поле заполнено
|
//почта валидна, хоть одно поле заполнено
|
||||||
setFire(true);
|
setFire(true);
|
||||||
@ -228,6 +238,30 @@ export const ContactForm = ({ currentQuestion, onShowResult }: Props) => {
|
|||||||
|
|
||||||
const isEmailValid = validateEmail(email);
|
const isEmailValid = validateEmail(email);
|
||||||
|
|
||||||
|
// Определяем, отображается ли поле email
|
||||||
|
const isEmailFieldVisible = settings.cfg.formContact.fields?.email?.used && !isDisableEmail;
|
||||||
|
|
||||||
|
// Функции для определения видимости полей
|
||||||
|
const isNameFieldVisible = () => {
|
||||||
|
const FC = settings.cfg.formContact.fields;
|
||||||
|
return Object.values(FC).some((data) => data.used) ? FC["name"].used : true;
|
||||||
|
};
|
||||||
|
|
||||||
|
const isPhoneFieldVisible = () => {
|
||||||
|
const FC = settings.cfg.formContact.fields;
|
||||||
|
return Object.values(FC).some((data) => data.used) ? FC["phone"].used : true;
|
||||||
|
};
|
||||||
|
|
||||||
|
const isTextFieldVisible = () => {
|
||||||
|
const FC = settings.cfg.formContact.fields;
|
||||||
|
return Object.values(FC).some((data) => data.used) ? FC["text"].used : false;
|
||||||
|
};
|
||||||
|
|
||||||
|
const isAddressFieldVisible = () => {
|
||||||
|
const FC = settings.cfg.formContact.fields;
|
||||||
|
return Object.values(FC).some((data) => data.used) ? FC["address"].used : false;
|
||||||
|
};
|
||||||
|
|
||||||
// Обработчик изменения телефона
|
// Обработчик изменения телефона
|
||||||
const handlePhoneChange = (newPhone: string) => {
|
const handlePhoneChange = (newPhone: string) => {
|
||||||
setPhone(newPhone);
|
setPhone(newPhone);
|
||||||
@ -395,7 +429,7 @@ export const ContactForm = ({ currentQuestion, onShowResult }: Props) => {
|
|||||||
</Box>
|
</Box>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
disabled={!(ready && !fire && isPhoneValid && isEmailValid)}
|
disabled={!(ready && !fire && isPhoneValid && (isEmailFieldVisible ? isEmailValid : true))}
|
||||||
variant="contained"
|
variant="contained"
|
||||||
onClick={handleShowResultsClick}
|
onClick={handleShowResultsClick}
|
||||||
sx={{
|
sx={{
|
||||||
|
Loading…
Reference in New Issue
Block a user