"use client"; import { toast } from "sonner"; import { Cloud, Loader2 } from "lucide-react"; import { Button } from "@/components/ui/button"; import { useCreateGiteaRepo, useGitStatus, type CaseDetail, } from "@/lib/api/cases"; export function CreateRepoButton({ data }: { data?: CaseDetail }) { const { data: gitStatus } = useGitStatus(data?.case_number); const createRepo = useCreateGiteaRepo(data?.case_number); if (!data?.case_number || !gitStatus) return null; /* Show only when something is actually missing — repo, remote, or * unpushed commits. If everything is in sync, the SyncIndicator already * communicates that. */ const needsRepo = gitStatus.error === "no_repo" || !gitStatus.has_remote; if (!needsRepo) return null; function handleClick() { if (!data) return; createRepo.mutate( { title: data.title ?? "", description: data.subject ?? "" }, { onSuccess: (res) => toast.success( res.pushed ? `הריפו נוצר ב-Gitea: ${res.repo_url}` : `הריפו נוצר אך ה-push נכשל. בדוק את הלוגים של ה-backend.`, ), onError: (err) => toast.error( err instanceof Error ? err.message : "יצירת הריפו נכשלה", ), }, ); } return ( ); }