'use client' import { useState } from 'react' import { Card, CardContent, CardHeader } from '@/components/ui/card' import { Button } from '@/components/ui/button' import { ConfirmDialog } from '@/components/common/ConfirmDialog' import { Badge } from '@/components/ui/badge' import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible' import { ChevronDown, ChevronRight, Trash2, Wand2, Edit } from 'lucide-react' import { Transformation } from '@/lib/types/transformations' import { useDeleteTransformation } from '@/lib/hooks/use-transformations' import { useTranslation } from '@/lib/hooks/use-translation' import { cn } from '@/lib/utils' interface TransformationCardProps { transformation: Transformation onPlayground?: () => void onEdit?: () => void } export function TransformationCard({ transformation, onPlayground, onEdit }: TransformationCardProps) { const { t } = useTranslation() const [isExpanded, setIsExpanded] = useState(false) const [showDeleteDialog, setShowDeleteDialog] = useState(false) const deleteTransformation = useDeleteTransformation() const handleDelete = () => { deleteTransformation.mutate(transformation.id) setShowDeleteDialog(false) } return ( <> {isExpanded ? ( ) : ( )} {transformation.name} {!isExpanded && transformation.description && ( {transformation.description} )} {transformation.apply_default && ( {t('common.default')} )} {onPlayground && ( {t('transformations.playground')} )} {onEdit && ( {t('common.edit')} )} setShowDeleteDialog(true)} > {t('common.title')} {transformation.title || t('sources.untitledSource')} {transformation.description && ( {t('common.description')} {transformation.description} )} {t('transformations.systemPrompt')} {transformation.prompt} > ) }
{t('common.title')}
{transformation.title || t('sources.untitledSource')}
{t('common.description')}
{transformation.description}
{t('transformations.systemPrompt')}
{transformation.prompt}