"use client";

// src/components/tours/tour-replay-button.tsx — relance manuelle du tour de la
// page courante. Ne décide de rien : il émet un évènement, et c'est le runner
// (via `planTour`) qui tranche — notamment le refus de rejouer sur un écran
// vide, qu'une relance explicite ne lève pas.
import { CircleQuestionMarkIcon } from "lucide-react";
import { usePathname } from "next/navigation";
import { useTranslations } from "next-intl";
import { Button } from "@/components/ui/button";
import {
  Tooltip,
  TooltipContent,
  TooltipProvider,
  TooltipTrigger,
} from "@/components/ui/tooltip";
import { tourForRoute } from "@/lib/tours/catalog";
import { TOUR_REPLAY_EVENT } from "@/lib/tours/replay-event";

export function TourReplayButton() {
  const pathname = usePathname();
  const t = useTranslations("Tour");
  const tour = tourForRoute(pathname);
  if (!tour) return null;

  return (
    // `asChild` + TooltipProvider local : forme d'appel du Tooltip de CE repo
    // (radix-ui derrière src/components/ui/tooltip.tsx), alignée sur
    // readiness-dot / source-dots. Aucun import direct de `radix-ui` ici.
    <TooltipProvider>
      <Tooltip>
        <TooltipTrigger asChild>
          <Button
            variant="ghost"
            size="icon-sm"
            aria-label={t("replay")}
            onClick={() => {
              window.dispatchEvent(
                new CustomEvent(TOUR_REPLAY_EVENT, { detail: tour.id }),
              );
            }}
          >
            <CircleQuestionMarkIcon />
          </Button>
        </TooltipTrigger>
        <TooltipContent>{t("replay")}</TooltipContent>
      </Tooltip>
    </TooltipProvider>
  );
}
