// Komponenty HTML loader
function loadComponent(path, replaceMap = {}) {
  // If path is a full mapped origin used by WebViewAssetLoader, strip it to a relative path.
  const mappedOrigin = 'https://appassets.androidplatform.net/assets/';
  if (path.startsWith(mappedOrigin)) {
    path = path.slice(mappedOrigin.length);
  }

  // If an absolute path starting with '/' is provided, remove leading slash to make it
  // relative to the current document (works under local http server and WebViewAssetLoader).
  if (path.startsWith('/')) path = path.slice(1);

  return fetch(path)
    .then(r => {
      if (!r.ok) throw new Error('Failed to load component: ' + path);
      return r.text();
    })
    .then(html => {
      Object.entries(replaceMap).forEach(([key, val]) => {
        html = html.replaceAll(key, val);
      });
      return html;
    });
}

// Przykład użycia:
// loadComponent('components/header.html', {'{TITLE}': 'Tytuł', '{SUBTITLE}': 'Podtytuł'}).then(html => ...)
