// content/bridge.js — corre en mundo ISOLATED (acceso a chrome.*)
// Recibe mensajes del mundo MAIN (main-world.js) y los reenvía al service worker.
// También detecta la página actual para el popup.

(function () {
  'use strict';

  // Puerto de conexión persistente con el service worker
  let _port = null;

  function getPort() {
    if (_port) return _port;
    try {
      _port = chrome.runtime.connect({ name: 'skoop-bridge' });
      _port.onDisconnect.addListener(() => {
        _port = null;
      });
    } catch (_) {}
    return _port;
  }

  // Escuchar mensajes de main-world.js
  window.addEventListener('message', (event) => {
    if (event.source !== window) return;
    if (!event.data?.__skoop) return;

    const payload = event.data.payload;
    const port = getPort();
    if (!port) return;

    try {
      port.postMessage(payload);
    } catch (_) {
      _port = null;
    }
  });

  // Notificar al service worker que esta tab es de Skool
  chrome.runtime.sendMessage({
    type: 'SKOOP_TAB_READY',
    href: location.href,
    slug: location.pathname.split('/').filter(Boolean)[0] || null,
  }).catch(() => {});
})();
