import React from 'react'; import Button from '@/components/ui/Button.tsx'; import Skeleton from '@/components/ui/Skeleton.tsx'; import ErrorMessage from '@/components/ui/ErrorMessage.tsx'; interface IntelligenceModuleProps { title?: string; description: string; buttonText: string; onAction: () => void; isPending: boolean; error: string | null; children?: React.ReactNode; size?: 'default' | 'small'; } const IntelligenceModule = ({ title, description, buttonText, onAction, isPending, error, children, size = 'default', }: IntelligenceModuleProps) => { const titleClass = size === 'small' ? 'text-sm font-semibold' : 'text-base font-semibold'; const descriptionClass = size === 'small' ? 'text-xs text-muted-foreground mb-3' : 'text-sm text-muted-foreground'; const buttonSize = size === 'small' ? 'sm' : 'default'; if (isPending) { if (size === 'small') { return (
); } return (
); } return (
{title &&

{title}

}

{description}

{error && } {children}
); }; export default React.memo(IntelligenceModule);