// import './utils/polyfills.js';
import { initHeader } from './components/header.js';
import { initModal } from './components/modal.js';
import { loadData } from './utils/dataLoader.js';

// Инициализация приложения
class App {
  constructor() {
    this.init();
  }

  async init() {
    try {
      // Загрузка данных
      await this.loadAppData();

      // Инициализация компонентов
      this.initComponents();

      // Обработчики событий
      this.bindEvents();

      console.log('✅ Приложение инициализировано');
    } catch (error) {
      console.error('❌ Ошибка инициализации:', error);
    }
  }

  async loadAppData() {
    try {
      const data = await loadData('/src/data/content.json');
      window.appData = data;
    } catch (error) {
      console.warn('⚠️ Не удалось загрузить данные:', error);
    }
  }

  initComponents() {
    initHeader();
    initModal();
  }

  bindEvents() {
    // Плавная прокрутка для якорных ссылок
    document.addEventListener('click', e => {
      const link = e.target.closest('a[href^="#"]');
      if (link) {
        e.preventDefault();
        const target = document.querySelector(link.getAttribute('href'));
        if (target) {
          target.scrollIntoView({
            behavior: 'smooth',
            block: 'start'
          });
        }
      }
    });

    // Ленивая загрузка изображений
    if ('IntersectionObserver' in window) {
      const imageObserver = new IntersectionObserver(entries => {
        entries.forEach(entry => {
          if (entry.isIntersecting) {
            const img = entry.target;
            img.src = img.dataset.src;
            img.classList.remove('lazy');
            imageObserver.unobserve(img);
          }
        });
      });

      document.querySelectorAll('img[data-src]').forEach(img => {
        imageObserver.observe(img);
      });
    }
  }
}

// Запуск приложения
document.addEventListener('DOMContentLoaded', () => {
  new App();
});
