/**
 * Trouve-KA — compteur vivant des pages indexées (homepage)
 * Author: Simon-Pierre Boucher
 * Contact: contact@spboucher.ai
 */

"use client";

import { useEffect, useState } from "react";
import { formatNumber } from "@/lib/format";
import type { StatusResponse } from "@/lib/types";

const REFRESH_MS = 30_000;

export function IndexCounter() {
  const [status, setStatus] = useState<StatusResponse | null>(null);

  useEffect(() => {
    let active = true;

    async function load() {
      try {
        const res = await fetch("/api/status");
        if (!res.ok) return;
        const data = (await res.json()) as StatusResponse;
        if (active) setStatus(data);
      } catch {
        // Backend injoignable : le compteur reste simplement absent.
      }
    }

    load();
    const id = setInterval(load, REFRESH_MS);
    return () => {
      active = false;
      clearInterval(id);
    };
  }, []);

  // Espace réservé pour éviter tout saut de mise en page.
  if (!status) {
    return (
      <span aria-hidden="true" className="stat-chip invisible">
        <span className="pulse-dot" />
        &nbsp;
      </span>
    );
  }

  return (
    <span className="stat-chip">
      <span className="pulse-dot" aria-hidden="true" />
      {formatNumber(status.pages_indexed)} pages indexées
    </span>
  );
}
