|
352 | 352 | ); |
353 | 353 | addModalBodyAddContactsRowWrap.classList.add( |
354 | 354 | 'modal__add-body-add-contacts-row-wrap', |
| 355 | + 'modal-contacts-row-wrap', |
355 | 356 | 'd-none' |
356 | 357 | ); |
357 | 358 | addModalBodyAddBtn.classList.add('modal__add-body-add-btn', 'modal-btn'); |
|
1262 | 1263 |
|
1263 | 1264 | // организация дополнительных отступов для "Добавить контакт" кнопки (при появлении строки контактов) |
1264 | 1265 | if (addModalContactsArr.length === 0) { |
1265 | | - addModalBodyAddBtn.classList.add('add-modal-btn-margin'); |
| 1266 | + addModalBodyAddBtn.classList.add('modal-btn-margin'); |
1266 | 1267 | } |
1267 | 1268 |
|
1268 | 1269 | // добавление "не большого" эффекта/задержки появления для "новой" строки контактов (элемента) |
|
1477 | 1478 |
|
1478 | 1479 | addModalWrap.addEventListener('hidden.bs.modal', closeRowDropdown); // закрытие "возможно" раскрытого выпадающего списка контактов (при закрытие add-модального окна) |
1479 | 1480 |
|
| 1481 | + // ** удаление/очистка от невалидных row-контактов (при закрытии модального окна) |
| 1482 | + function removeInvalidRowContacts() { |
| 1483 | + const invalidContactRows = document.querySelectorAll( |
| 1484 | + '.modal-contact-element .is-invalid' |
| 1485 | + ); |
| 1486 | + |
| 1487 | + invalidContactRows.forEach((invalidInput) => { |
| 1488 | + const contactRow = invalidInput.closest('.modal-contact-element'); |
| 1489 | + if (contactRow) { |
| 1490 | + contactRow.remove(); // удаление всего элемента/родителя |
| 1491 | + |
| 1492 | + // корректировка массива контактов |
| 1493 | + const contactIndex = addModalContactsArr.indexOf(contactRow); |
| 1494 | + if (contactIndex > -1) { |
| 1495 | + addModalContactsArr.splice(contactIndex, 1); |
| 1496 | + } |
| 1497 | + } |
| 1498 | + }); |
| 1499 | + |
| 1500 | + // проверка общего количества row-контактов |
| 1501 | + if (addModalContactsArr.length < 10) { |
| 1502 | + addModalBodyAddBtn.disabled = false; // разблокировка кнопки "Добавить контакт", если меньше 10 контактов |
| 1503 | + } |
| 1504 | + |
| 1505 | + // скрытие "обвёртки" контактов если в массиве контактов пусто |
| 1506 | + if (addModalContactsArr.length === 0) { |
| 1507 | + const addBodySelectWrap = document.querySelector( |
| 1508 | + '.modal-contacts-row-wrap' |
| 1509 | + ); |
| 1510 | + addBodySelectWrap.classList.add('d-none'); |
| 1511 | + addModalBodyAddBtn.classList.remove('modal-btn-margin'); // удаление дополнительных отступов |
| 1512 | + } |
| 1513 | + } |
| 1514 | + |
| 1515 | + addModalWrap.addEventListener('hidden.bs.modal', removeInvalidRowContacts); // удаление/очистка от невалидных row-контактов (при закрытие add-модального окна) |
| 1516 | + |
1480 | 1517 | // ** удаление строки контактов в add-модальном окне (через "X" кнопку, с/без уточняющего сообщения) |
1481 | 1518 | function deleteModalContactsElement(event) { |
1482 | 1519 | const clickedContactsXBtn = event.target; |
|
1522 | 1559 | '.modal__add-body-add-contacts-row-wrap' |
1523 | 1560 | ); |
1524 | 1561 | addBodySelectWrap.classList.add('d-none'); |
1525 | | - addModalBodyAddBtn.classList.remove('add-modal-btn-margin'); |
| 1562 | + addModalBodyAddBtn.classList.remove('modal-btn-margin'); |
1526 | 1563 | } |
1527 | 1564 | } |
1528 | 1565 | } |
|
0 commit comments