Skip to content

Commit 3ea49fc

Browse files
committed
[PRAC/cont] Add log for del invalid row-contacts
Organiz removal/cleanup invalid row-contacts (when closes modal window). Worth noting: - entering a "main" modal.css file. core: B-3 / JS-BL
1 parent 1e265fb commit 3ea49fc

File tree

4 files changed

+43
-6
lines changed

4 files changed

+43
-6
lines changed

core-courses/3-js-basic-level/practicum-js-basic-level/sb-crm-client/css/modal-add.css

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -183,10 +183,6 @@
183183
color: var(--gray);
184184
}
185185

186-
.add-modal-btn-margin {
187-
margin-bottom: 15px;
188-
}
189-
190186
.modal__add-body-add-contacts-wrap {
191187
display: flex;
192188
flex-direction: column;
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.modal-btn-margin {
2+
margin-bottom: 15px;
3+
}

core-courses/3-js-basic-level/practicum-js-basic-level/sb-crm-client/css/style.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@
66
@import url("crm-output.css");
77
@import url("crm-add.css");
88
@import url("modal-add.css");
9+
@import url("modal.css");
910
@import url("custom-tippy.css");

core-courses/3-js-basic-level/practicum-js-basic-level/sb-crm-client/js/index.js

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -352,6 +352,7 @@
352352
);
353353
addModalBodyAddContactsRowWrap.classList.add(
354354
'modal__add-body-add-contacts-row-wrap',
355+
'modal-contacts-row-wrap',
355356
'd-none'
356357
);
357358
addModalBodyAddBtn.classList.add('modal__add-body-add-btn', 'modal-btn');
@@ -1262,7 +1263,7 @@
12621263

12631264
// организация дополнительных отступов для "Добавить контакт" кнопки (при появлении строки контактов)
12641265
if (addModalContactsArr.length === 0) {
1265-
addModalBodyAddBtn.classList.add('add-modal-btn-margin');
1266+
addModalBodyAddBtn.classList.add('modal-btn-margin');
12661267
}
12671268

12681269
// добавление "не большого" эффекта/задержки появления для "новой" строки контактов (элемента)
@@ -1477,6 +1478,42 @@
14771478

14781479
addModalWrap.addEventListener('hidden.bs.modal', closeRowDropdown); // закрытие "возможно" раскрытого выпадающего списка контактов (при закрытие add-модального окна)
14791480

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+
14801517
// ** удаление строки контактов в add-модальном окне (через "X" кнопку, с/без уточняющего сообщения)
14811518
function deleteModalContactsElement(event) {
14821519
const clickedContactsXBtn = event.target;
@@ -1522,7 +1559,7 @@
15221559
'.modal__add-body-add-contacts-row-wrap'
15231560
);
15241561
addBodySelectWrap.classList.add('d-none');
1525-
addModalBodyAddBtn.classList.remove('add-modal-btn-margin');
1562+
addModalBodyAddBtn.classList.remove('modal-btn-margin');
15261563
}
15271564
}
15281565
}

0 commit comments

Comments
 (0)