/* api.jsx — volania backendu hubu (functions/api). Vystavuje window.HUB_API = { suhrn() }
   a hook window.useSuhrn().
   Backend sám overí, kto volá, a vráti len jeho údaje — klient mu žiadnu identitu neposiela.
*/
(function () {
  "use strict";

  const { useState, useEffect } = React;

  async function suhrn() {
    const token = await window.HUB_AUTH.getHubToken();
    const res = await fetch("/api/suhrn", { headers: { Authorization: "Bearer " + token } });
    if (!res.ok) throw new Error("Backend vrátil " + res.status);
    return res.json();
  }

  // { stav: "vypnute" | "nacitavam" | "ok" | "chyba", data }
  // Chyba nikdy neprekáža hubu — dlaždice sa ukážu bez čísel a dôvod ide do konzoly.
  function useSuhrn(zapnute) {
    const [vysledok, setVysledok] = useState({ stav: zapnute ? "nacitavam" : "vypnute", data: null });
    useEffect(() => {
      if (!zapnute) return;
      let zruseny = false;
      suhrn()
        .then((data) => { if (!zruseny) setVysledok({ stav: "ok", data }); })
        .catch((err) => {
          console.warn("Súhrn z aplikácií sa nenačítal:", err);
          if (!zruseny) setVysledok({ stav: "chyba", data: null });
        });
      return () => { zruseny = true; };
    }, [zapnute]);
    return vysledok;
  }

  window.HUB_API = { suhrn };
  window.useSuhrn = useSuhrn;
})();
