Загрузка данных


// Добавление новой запчасти
if (addPartBtn) {
    addPartBtn.addEventListener('click', function() {
        const newPart = createPartItem();
        partsContainer.appendChild(newPart);
        updateRemoveButtons();
        // updatePartsContainerHeight();
        
        // === ДОРАСКРЫТИЕ ФОРМЫ ===
        const formContent = document.getElementById('formContent');
        const formToggleIcon = document.getElementById('formToggleIcon');
        
        // Если форма свёрнута, раскрываем её
        if (!formContent.classList.contains('open')) {
            formContent.classList.add('open');
            formToggleIcon.classList.add('rotated');
            
            // Прокручиваем к месту добавления
        //     setTimeout(() => {
        //         newPart.scrollIntoView({
        //             behavior: 'smooth',
        //             block: 'center'
        //         });
        //     }, 350);
        // } else {
        //     // Если уже раскрыта, просто прокручиваем
        //     setTimeout(() => {
        //         newPart.scrollIntoView({
        //             behavior: 'smooth',
        //             block: 'center'
        //         });
        //     }, 100);
        }
    });
}

    // Удаление запчасти (делегирование) с анимацией
    partsContainer.addEventListener('click', function(e) {
        if (e.target.classList.contains('btn-remove-part')) {
            const partItem = e.target.closest('.part-item');
            if (partItem && partsContainer.children.length > 1) {
                // Добавляем класс для анимации удаления
                partItem.classList.add('removing');
                
                // Удаляем после завершения анимации
                setTimeout(() => {
                    partItem.remove();
                    updateRemoveButtons();
                    // updatePartsContainerHeight();
                }, 250);
            }
        }
    });


    function updatePartsContainerHeight() {
    // Сбрасываем max-height, чтобы получить реальную высоту содержимого
    partsContainer.style.maxHeight = 'none';
    // Получаем реальную высоту
    const height = partsContainer.scrollHeight;
    // Устанавливаем её как max-height для анимации
    partsContainer.style.maxHeight = height + 'px';
    // Небольшая задержка для переключения
    requestAnimationFrame(() => {
        partsContainer.style.maxHeight = height + 'px';
    });
}