Skip to content

Commit 1e265fb

Browse files
committed
[PRAC/cont] Add logic for closing "open" dropdown
Organiz clos expanded/open dropdown row-list (when clos modal window). Worth noting: - universality of this function (by universal classes). core: B-3 / JS-BL
1 parent 50a96f8 commit 1e265fb

File tree

1 file changed

+21
-5
lines changed
  • core-courses/3-js-basic-level/practicum-js-basic-level/sb-crm-client/js

1 file changed

+21
-5
lines changed

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

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -515,7 +515,7 @@
515515
// сбор ошибок/соответствующих сообщений
516516
const errors = [];
517517

518-
// изначально проверка на поля ввода из "динамической" строки контактов
518+
// проверки для полей ввода/инпутов из "динамической" строки контактов (согласно type="" значений)
519519
if (options.dynamicContactValidation) {
520520
const hiddenInput = targetParentNode.querySelector(
521521
'.modal__add-body-add-hidden-input'
@@ -1138,6 +1138,7 @@
11381138
);
11391139
addModalContactList.classList.add(
11401140
'modal__add-body-add-contact-list',
1141+
'modal-contact-list',
11411142
'd-none'
11421143
);
11431144
addModalContactItemPhone.classList.add(
@@ -1314,9 +1315,7 @@
13141315

13151316
if (
13161317
alreadyOpenDropList &&
1317-
alreadyOpenDropList.classList.contains(
1318-
'modal__add-body-add-contact-list'
1319-
)
1318+
alreadyOpenDropList.classList.contains('modal-contact-list')
13201319
) {
13211320
alreadyOpenDropList.classList.add('d-none'); // закрытие ранее открытого списка
13221321
}
@@ -1434,7 +1433,7 @@
14341433
createAddModalContactsElement();
14351434
});
14361435

1437-
// ** организация "УНИВЕРСАЛЬНОЙ" проверки на "пустые" row-контакты, перед закрытием того/иного модального окна (вывод сообщения)
1436+
// ** организация проверки на "пустые" row-контакты, перед закрытием модального окна (вывод сообщения)
14381437
function checkEmptyRowContacts(event) {
14391438
const allContactRows = document.querySelectorAll('.modal-contact-element');
14401439

@@ -1461,6 +1460,23 @@
14611460

14621461
addModalWrap.addEventListener('hide.bs.modal', checkEmptyRowContacts); // запуск проверки на "пустые" контакты (перед закрытием add-модального окна)
14631462

1463+
// ** организация закрытия развёрнутого/раскрытого выпадающего списка row-контактов (при закрытии модального окна)
1464+
function closeRowDropdown() {
1465+
const openRowDropdownBtn = document.querySelector('.drop-open');
1466+
if (openRowDropdownBtn) {
1467+
const dropdownList = openRowDropdownBtn.nextElementSibling; // определение следом идущего списка
1468+
if (
1469+
dropdownList &&
1470+
dropdownList.classList.contains('modal-contact-list')
1471+
) {
1472+
dropdownList.classList.add('d-none'); // закрытие списка
1473+
openRowDropdownBtn.classList.remove('arrow-rotate', 'drop-open'); // корректировка кнопки
1474+
}
1475+
}
1476+
}
1477+
1478+
addModalWrap.addEventListener('hidden.bs.modal', closeRowDropdown); // закрытие "возможно" раскрытого выпадающего списка контактов (при закрытие add-модального окна)
1479+
14641480
// ** удаление строки контактов в add-модальном окне (через "X" кнопку, с/без уточняющего сообщения)
14651481
function deleteModalContactsElement(event) {
14661482
const clickedContactsXBtn = event.target;

0 commit comments

Comments
 (0)