import {StrictMode} from 'react';
import {createRoot} from 'react-dom/client';
import App from './App.tsx';
import './index.css';
import { smoothScrollTo } from './utils/scroll';

// Global smooth scroll delegator for internal links
if (typeof window !== 'undefined') {
  const subpageTargetMap: Record<string, string> = {
    '/wordpress-agentur-minden/': 'wordpress',
    '/wordpress-agentur-minden': 'wordpress',
    '/woocommerce-onlineshop-minden/': 'woocommerce',
    '/woocommerce-onlineshop-minden': 'woocommerce',
    '/webdesign-luebbecke/': 'architektur',
    '/webdesign-luebbecke': 'architektur',
    '/referenzen/': 'cases',
    '/referenzen': 'cases',
    '/kontakt/': 'kontakt',
    '/kontakt': 'kontakt',
  };

  document.addEventListener('click', (event) => {
    const target = (event.target as HTMLElement)?.closest('a');
    if (!target) return;
    const href = target.getAttribute('href');
    if (!href) return;

    if (href.startsWith('#') && href.length > 1) {
      const targetId = href.substring(1);
      const elem = document.getElementById(targetId);
      if (elem) {
        event.preventDefault();
        smoothScrollTo(elem, 85);
        if (window.history && window.history.pushState) {
          window.history.pushState(null, '', href);
        }
      }
    } else if (subpageTargetMap[href]) {
      const targetId = subpageTargetMap[href];
      const elem = document.getElementById(targetId);
      if (elem) {
        event.preventDefault();
        smoothScrollTo(elem, 85);
        if (window.history && window.history.pushState) {
          window.history.pushState(null, '', href);
        }
      }
    }
  });
}

createRoot(document.getElementById('root')!).render(
  <StrictMode>
    <App />
  </StrictMode>,
);
