31 lines
1.0 KiB
TypeScript
31 lines
1.0 KiB
TypeScript
import { Badge } from '@/components/ui/badge'
|
|
import { Loader2 } from 'lucide-react'
|
|
|
|
interface ToolStatusIndicatorProps {
|
|
toolName?: string
|
|
}
|
|
|
|
const TOOL_NAME_MAP: Record<string, string> = {
|
|
searchCampaigns: '🔍 Đang tìm kiếm chiến dịch...',
|
|
getCampaignDetails: '📋 Đang lấy thông tin chi tiết chiến dịch...',
|
|
createCampaign: '✨ Đang khởi tạo chiến dịch mới...',
|
|
executeWorkflow: '⚡ Đang xử lý quy trình...',
|
|
queryCustomerPoints: '💳 Đang tra cứu điểm thưởng khách hàng...',
|
|
}
|
|
|
|
export function ToolStatusIndicator({ toolName }: ToolStatusIndicatorProps) {
|
|
if (!toolName) return null
|
|
|
|
const displayText = TOOL_NAME_MAP[toolName] || `🔍 Đang xử lý: ${toolName}...`
|
|
|
|
return (
|
|
<Badge
|
|
variant="outline"
|
|
className="gap-2 text-xs font-normal border-amber-500/30 bg-amber-500/10 text-amber-500 py-1 px-3 w-fit animate-pulse my-0.5 shadow-sm"
|
|
>
|
|
<Loader2 className="w-3.5 h-3.5 animate-spin text-amber-500 shrink-0" />
|
|
<span>{displayText}</span>
|
|
</Badge>
|
|
)
|
|
}
|