/* managers-list.jsx - Správci (investiční společnosti) overview.
   Computes fund counts / AUM live from funds.js. */
const { useMemo: useMemoML } = React;

function ManagersListApp() {
  const M = window.FKI_MANAGERS || {};
  const FUNDS = window.FKI_FUNDS || [];
  const rows = useMemoML(() => {
    return Object.keys(M).map((key) => {
      const funds = FUNDS.filter((x) => x.manager === key);
      const aum = funds.reduce((a, f) => a + (f.aum || 0), 0);
      const active = funds.filter((f) => f.fundraising === "Aktivní").length;
      const avg = funds.length ? funds.reduce((a, f) => a + f.rating, 0) / funds.length : 0;
      return { key, ...M[key], n: funds.length, aum, active, avg };
    }).sort((a, b) => b.n - a.n);
  }, []);

  const totalFunds = FUNDS.length;
  const totalAum = FUNDS.reduce((a, f) => a + (f.aum || 0), 0);
  const named = rows.reduce((a, r) => a + r.n, 0);

  return (
    <div className="detail-page">
      <SiteNav active="managers" />
      <div className="container">
        <div className="page-head" style={{ marginTop: "20px" }}>
          <div className="ph-text">
            <h1>Správci fondů (IS)</h1>
            <p className="ph-sub">Investiční společnosti, které zakládají a administrují FKI fondy. Koncentrace správců je jedním z klíčových signálů celého trhu.</p>
          </div>
          <div className="ph-stats">
            <div className="mini-stat"><strong>{rows.length}</strong><span>správců ve vzorku</span></div>
            <div className="mini-stat"><strong>{named}</strong><span>fondů přiřazeno</span></div>
            <div className="mini-stat"><strong>{fmtAum(totalAum)}</strong><span>AUM celkem</span></div>
          </div>
        </div>

        <div className="mgr-grid" style={{ marginTop: "8px" }}>
          {rows.map((r, i) => (
            <a className="mgr-card" key={r.key} href={"spravce.html?slug=" + r.slug}>
              <div className="mgr-card-top">
                <div>
                  <h3>{r.name}</h3>
                  <div className="mgr-since">založeno {r.founded} · {r.domicile}</div>
                </div>
                <span className="mgr-rank">#{i + 1}</span>
              </div>
              <p className="mgr-style">{r.style}</p>
              <div className="mgr-card-stats">
                <div><div className="v">{r.n}</div><div className="l">fondů</div></div>
                <div><div className="v">{fmtAum(r.aum)}</div><div className="l">AUM</div></div>
                <div><div className="v">{r.active}</div><div className="l">aktivně vybírá</div></div>
                <div><div className="v">{r.avg.toFixed(1).replace(".", ",")}</div><div className="l">prům. hodnocení</div></div>
              </div>
            </a>
          ))}
        </div>

        <div className="disclaimer" style={{ marginTop: "28px" }}>
          Počty fondů a AUM jsou počítány z ilustrativního vzorku {totalFunds} fondů. Reálný trh zahrnuje 341 fondů z registru ČNB a další administrátory.
        </div>
      </div>
      <SiteFooter />
    </div>
  );
}
window.ManagersListApp = ManagersListApp;
