import { IS_PLATFORM } from 'common' import { motion } from 'framer-motion' import { MoreVertical } from 'lucide-react' import { Button, DropdownMenu, DropdownMenuContent, DropdownMenuTrigger, TableCell, TableRow, } from 'ui' import { APIKeyDeleteDialog } from './APIKeyDeleteDialog' import { ApiKeyPill } from './ApiKeyPill' import { TextConfirmModal } from '@/components/ui/TextConfirmModalWrapper' import type { APIKeysData } from '@/data/api-keys/api-keys-query' export const APIKeyRow = ({ apiKey, isDeleting, isDeleteModalOpen, onDelete, setKeyToDelete, }: { apiKey: Extract isDeleting: boolean isDeleteModalOpen: boolean onDelete: () => void setKeyToDelete: (id: string | null) => void }) => { const MotionTableRow = motion.create(TableRow) return ( <>
{apiKey.name}
{apiKey.description || No description}
{IS_PLATFORM && (
)}
setKeyToDelete(null)} onConfirm={onDelete} title={`Delete ${apiKey.type} API key: ${apiKey.name}`} confirmString={apiKey.name} confirmLabel="Yes, irreversibly delete this API key" confirmPlaceholder="Type the name of the API key to confirm" loading={isDeleting} variant="destructive" alert={{ title: 'This cannot be undone', description: 'Make sure all applications and services using it have been updated before deletion. Deletion will cause them to receive HTTP 401 Unauthorized status codes on all Supabase APIs.', }} /> ) }