/* login.jsx — prihlasovacia obrazovka podľa zvoleného návrhu "1 · Proplusco | Plusim"
   (artboard LoginDuo3): ľavá biela polovica Proplusco, pravá tmavomodrá Plusim, diagonálne rozhranie.
   Vystavuje window.LoginScreen a window.HostScreen (odmietnutý hosťovský účet).

   props:
     onLogin   — spustí prihlásenie (redirect na Microsoft)
     stav      — "ready" | "presmerovavam" | "nenakonfigurovany"
     chyba     — text chyby z predošlého pokusu (alebo null)
*/
(function () {
  "use strict";

  function MicrosoftLogo() {
    return (
      <svg width="21" height="21" viewBox="0 0 21 21" aria-hidden="true">
        <rect x="1" y="1" width="9" height="9" fill="#f25022" />
        <rect x="11" y="1" width="9" height="9" fill="#7fba00" />
        <rect x="1" y="11" width="9" height="9" fill="#00a4ef" />
        <rect x="11" y="11" width="9" height="9" fill="#ffb900" />
      </svg>
    );
  }

  function LoginScreen({ onLogin, stav, chyba }) {
    const presmerovavam = stav === "presmerovavam";
    return (
      <div className="login">
        {/* Dekorácia — strana Proplusco */}
        <PlusMark className="login__shape login__shape--pro-big" color="#eaf5fb" />
        <PlusMark className="login__shape login__shape--pro-orange" color="#ef7c30" />
        <PlusMark className="login__shape login__shape--pro-blue" color="#17ace6" />
        {/* Strana Plusim */}
        <div className="login__diag" aria-hidden="true" />
        <PlusMark className="login__shape login__shape--sim-big" color="#22356a" />
        <PlusMark className="login__shape login__shape--sim-orange" color="#ff9b05" />
        <PlusMark className="login__shape login__shape--sim-blue" color="#00a0fc" />

        <main className="login__inner">
          <h1 className="login__eyebrow">PLUS Hub · firemné aplikácie</h1>

          <div className="login__logos">
            <div className="login__brand login__brand--pro">
              <img src="assets/proplusco-logo.png" alt="Proplusco – Smart Personnel Solutions" />
            </div>
            <svg className="login__x" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#ef7c30" strokeWidth="2" strokeLinecap="round" aria-hidden="true">
              <path d="M5 5l14 14M19 5L5 19" />
            </svg>
            <div className="login__brand login__brand--sim">
              <img src="assets/plusim-logo.png" alt="Plusim – sťahovanie, doprava, skladovanie" />
            </div>
          </div>

          <div className="login__cta">
            {stav === "nenakonfigurovany" ? (
              <div className="login__alert" role="status">
                <Icon name="pozor" size={20} />
                <p>Hub ešte nie je zaregistrovaný v Microsoft Entra ID, prihlásenie zatiaľ nie je možné. Doplňte <code>CLIENT_ID</code> v <code>config.jsx</code>.</p>
              </div>
            ) : (
              <button type="button" className="btn-ms" onClick={onLogin} disabled={presmerovavam}>
                <MicrosoftLogo />
                {presmerovavam ? "Presmerovávam na Microsoft…" : "Prihlásiť sa cez Microsoft"}
              </button>
            )}
            {chyba && (
              <div className="login__alert" role="alert">
                <Icon name="pozor" size={20} />
                <p>{chyba}</p>
              </div>
            )}
            <p className="login__note">Len pre zamestnancov PROPLUSCO a PLUSIM · overenie cez Microsoft Entra ID</p>
          </div>
        </main>
      </div>
    );
  }

  // Odmietnutý účet — hub ho ďalej nepustí. Jediná akcia je odhlásenie, inak by ostal
  // v prehliadači prihlásený a pri ďalšej návšteve by videl to isté.
  //   dovod = "host"      — hosťovský (B2B guest) účet, acct = 1
  //   dovod = "neovereny" — v tokene chýba údaj o členstve alebo je z iného tenantu
  function HostScreen({ dovod, email, onLogout }) {
    return (
      <main className="host">
        <div className="host__karta">
          <PlusMark size={40} />
          <h1>PLUS Hub je len pre zamestnancov PROPLUSCO a PLUSIM</h1>
          {dovod === "host" ? (
            <>
              <p>Ste prihlásený účtom <strong>{email}</strong>, ktorý je v našom Microsoft 365 vedený ako hosťovský (externý). Takýto účet do PLUS Hubu prístup nemá.</p>
              <p>Ak ste zamestnanec a vidíte túto správu, prihláste sa svojím firemným účtom, alebo sa obráťte na IT oddelenie.</p>
            </>
          ) : (
            <>
              <p>Pri účte <strong>{email}</strong> sa nepodarilo overiť, že ide o interný firemný účet, preto prístup nie je povolený.</p>
              <p>Obráťte sa, prosím, na IT oddelenie.</p>
            </>
          )}
          <button type="button" className="btn btn--primarne" onClick={onLogout}>
            <Icon name="odhlasit" size={18} />
            Odhlásiť sa
          </button>
        </div>
      </main>
    );
  }

  window.LoginScreen = LoginScreen;
  window.HostScreen = HostScreen;
})();
