import React, { useState, useEffect } from 'react'; interface SkeletonLoaderProps { count?: number; component?: 'default' | 'analysis' | 'chatbot' | 'logs'; } const SkeletonLoader: React.FC = ({ count = 1, component = 'default', }) => { const [skeletonCount, setSkeletonCount] = useState(count); useEffect(() => { const handleResize = () => { const windowWidth = window.innerWidth; if (windowWidth > 1024) { setSkeletonCount(1); } else if (windowWidth > 768) { setSkeletonCount(count); } else { setSkeletonCount(Math.min(count, 2)); } }; handleResize(); window.addEventListener('resize', handleResize); return () => { window.removeEventListener('resize', handleResize); }; }, [count]); return (
{component === 'default' ? ( [...Array(skeletonCount)].map((_, idx) => (
)) ) : component === 'analysis' ? ( [...Array(skeletonCount)].map((_, idx) => (
)) ) : component === 'chatbot' ? (
{[...Array(skeletonCount * 6)].map((_, idx) => (
))}
) : ( [...Array(skeletonCount)].map((_, idx) => (
)) )}
); }; export default SkeletonLoader;