"use client";

import { useEffect } from "react";
import { trackBlogSearchQuery } from "@/lib/public-blog";

type Props = {
  query: string;
  resultCount: number;
};

function ensureId(key: string) {
  if (typeof window === "undefined") return "";
  const existing = localStorage.getItem(key);
  if (existing) return existing;
  const next = `${key}-${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;
  localStorage.setItem(key, next);
  return next;
}

export default function BlogSearchTracker({ query, resultCount }: Props) {
  useEffect(() => {
    const normalized = (query || "").trim();
    if (normalized.length < 2) return;
    const sessionId = ensureId("blog_analytics_session_id");
    const visitorId = ensureId("blog_analytics_visitor_id");
    void trackBlogSearchQuery({
      query: normalized,
      resultCount,
      sessionId,
      visitorId,
      sourcePage: "/blogs",
    });
  }, [query, resultCount]);

  return null;
}
