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'; import { Text, Heading } from '@/components/ui/Typography.tsx'; import { Stack } from '@/components/ui/layout'; 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 buttonSize = size === 'small' ? 'sm' : 'default'; if (isPending) { if (size === 'small') { return (
); } return (
); } return ( {title && ( {title} )} {description} {error && } {children} ); }; export default React.memo(IntelligenceModule);