import { Copy, KeyRound } from 'lucide-react'; import { useState } from 'react'; import { toast } from 'sonner'; import { ConfigError } from '@/components/admin/admin-form-parts'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from '@/components/ui/card'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { Spinner } from '@/components/ui/spinner'; import { generateApiKey } from '@/lib/rag-client'; import type { GeneratedApiKey } from '@/types/admin'; export function AdminApiKeyCard() { const [generatedApiKey, setGeneratedApiKey] = useState(null); const [isLoading, setIsLoading] = useState(false); const [error, setError] = useState(); async function handleGenerateApiKey(): Promise { setIsLoading(true); setError(undefined); try { const result = await generateApiKey(); setGeneratedApiKey(result); } catch (e) { setError( e instanceof Error ? e.message : 'Gagal membuat API key.', ); } finally { setIsLoading(false); } } function handleCopyApiKey(): void { if (!generatedApiKey?.api_key) { return; } void navigator.clipboard.writeText(generatedApiKey.api_key); toast.success('API key disalin.'); } return ( API Key Iframe API key hanya ditampilkan sekali setelah dibuat. {generatedApiKey ? (

Expired: {generatedApiKey.expires_at ?? '-'}

) : null}
); }