"use client";

import Link from "next/link";
import { useEffect, useRef, useState } from "react";
import "./portal-chrome.css";
import "./portal-compact.css";

export function PortalHeader() {
  const [open, setOpen] = useState(false);
  const header = useRef<HTMLElement>(null);
  const menuButton = useRef<HTMLButtonElement>(null);

  useEffect(() => {
    const compact = window.matchMedia("(max-width: 1040px)");
    const close = () => setOpen(false);
    compact.addEventListener("change", close);
    return () => compact.removeEventListener("change", close);
  }, []);

  useEffect(() => {
    if (!open) return;
    const outside = (event: PointerEvent) => {
      if (event.target instanceof Node && !header.current?.contains(event.target)) setOpen(false);
    };
    const escape = (event: KeyboardEvent) => {
      if (event.key !== "Escape") return;
      setOpen(false);
      menuButton.current?.focus();
    };
    document.addEventListener("pointerdown", outside);
    document.addEventListener("keydown", escape);
    return () => {
      document.removeEventListener("pointerdown", outside);
      document.removeEventListener("keydown", escape);
    };
  }, [open]);

  return (
    <header className="portal-header portal-header--documenta" ref={header}>
      <div className="portal-container portal-header-inner">
        <Link href="/" className="portal-brand" aria-label="Documenta, inicio">
          <img src="/media/brand/logo-original-transparent.png" width="188" height="40" alt="Documenta" />
        </Link>
        <Link href="/buscar" className="portal-quick-search" aria-label="Buscar entidad o servicio">
          <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" strokeWidth="1.8" aria-hidden="true"><circle cx="10.8" cy="10.8" r="6.4"/><path d="m16 16 5 5"/></svg>
          <span>Buscar entidad o servicio</span>
        </Link>
        <a className="portal-button portal-button-primary portal-header-cta" href="https://tramites.documenta.cl">
          Iniciar trámite
        </a>
        <button
          ref={menuButton}
          className="portal-menu-button"
          style={{ display: "inline-flex", alignItems: "center" }}
          type="button"
          aria-label={open ? "Cerrar menú" : "Abrir menú"}
          aria-expanded={open}
          aria-controls="portal-navigation"
          aria-haspopup="true"
          onClick={() => setOpen((value) => !value)}
        >
          <svg className="portal-menu-icon" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" aria-hidden="true">
            <path d={open ? "M5 5l14 14M19 5L5 19" : "M4 6h16M4 12h16M4 18h16"} />
          </svg>
          <b>Menú</b>
        </button>
        <nav id="portal-navigation" className={open ? "is-open" : ""} aria-label="Navegación principal" aria-hidden={!open} inert={!open}>
          <div className="portal-menu-group portal-menu-mobile-actions">
            <strong>Accesos rápidos</strong>
            <Link href="/buscar" onClick={() => setOpen(false)}>Buscar entidad o servicio</Link>
            <a href="https://tramites.documenta.cl" onClick={() => setOpen(false)}>Iniciar trámite</a>
          </div>
          <div className="portal-menu-group">
            <strong>Explorar</strong>
            <Link href="/#servicios" onClick={() => setOpen(false)}>Servicios</Link>
            <Link href="/#plataformas" onClick={() => setOpen(false)}>Plataformas</Link>
            <Link href="/#empresas" onClick={() => setOpen(false)}>Empresas</Link>
            <Link href="/noticias" onClick={() => setOpen(false)}>Noticias</Link>
          </div>
          <div className="portal-menu-group">
            <strong>Información y ayuda</strong>
            <Link href="/ayuda" onClick={() => setOpen(false)}>Ayuda</Link>
            <Link href="/verificar" onClick={() => setOpen(false)}>Verificar documento</Link>
            <Link href="/contacto" onClick={() => setOpen(false)}>Contacto</Link>
            <Link href="/acceso" className="portal-menu-login" onClick={() => setOpen(false)}>Ingresar</Link>
          </div>
        </nav>
        <Link href="/acceso" className="portal-login-link">Ingresar</Link>
      </div>
    </header>
  );
}

export function PortalFooter() {
  return (
    <footer className="portal-footer portal-footer--documenta">
      <div className="portal-container portal-footer-grid">
        <div className="portal-footer-brand">
          <img src="/media/brand/logo-original-transparent.png" width="188" height="40" alt="Documenta" />
          <p>Solicitudes, documentos y servicios de notarías, conservadores y archiveros.</p>
        </div>
        <div>
          <strong>Plataformas</strong>
          <a href="https://tramites.documenta.cl">Trámites</a>
          <a href="https://personas.documenta.cl">Personas</a>
          <a href="https://pro.documenta.cl">Documenta Pro</a>
        </div>
        <div>
          <strong>Entidades</strong>
          <a href="https://notaria.documenta.cl">Notarías</a>
          <a href="https://cbr.documenta.cl">Conservadores</a>
          <a href="https://archivero.documenta.cl">Archiveros</a>
        </div>
        <div>
          <strong>Documenta</strong>
          <Link href="/noticias">Noticias</Link>
          <Link href="/ayuda">Centro de ayuda</Link>
          <Link href="/verificar">Verificar documento</Link>
          <Link href="/contacto">Contacto</Link>
          <Link href="/terminos">Términos</Link>
          <Link href="/privacidad">Privacidad</Link>
        </div>
      </div>
      <div className="portal-container portal-footer-bottom">
        <span>© {new Date().getFullYear()} Documenta.cl - todos los derechos reservados</span>
        <span>Desarrollado por Undermarket Chile SPA · Huerfanos 1160 OF 909, Santiago Centro · +56 2 2646 91551</span>
      </div>
    </footer>
  );
}
