"use client"; import { useState } from "react"; import { useRouter } from "next/navigation"; import { ActionButton } from "@/components/ui/action-button"; import { Button } from "@/components/ui/button"; import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from "@/components/ui/dialog"; import { toast } from "@/components/ui/use-toast"; import { useTranslation } from "@/lib/i18n/client"; import { api } from "@/lib/trpc"; import { RefreshCcw } from "lucide-react"; import ApiKeySuccess from "./ApiKeySuccess"; export default function RegenerateApiKey({ id, name, }: { id: string; name: string; }) { const { t } = useTranslation(); const router = useRouter(); const [key, setKey] = useState(undefined); const [dialogOpen, setDialogOpen] = useState(false); const mutator = api.apiKeys.regenerate.useMutation({ onSuccess: (resp) => { setKey(resp.key); router.refresh(); }, onError: () => { toast({ description: t("common.something_went_wrong"), variant: "destructive", }); setDialogOpen(false); }, }); const handleRegenerate = () => { mutator.mutate({ id }); }; return ( { setDialogOpen(o); setKey(undefined); }} > {key ? t("settings.api_keys.key_regenerated") : t("settings.api_keys.regenerate_api_key")} {!key && ( {t("settings.api_keys.regenerate_warning", { name })} )} {key ? ( ) : (

{t("settings.api_keys.regenerate_confirmation")}

)} {!key ? ( <> {t("actions.regenerate")} ) : ( )}
); }