@gambito-corp/mbs-library
Version:
Librería de componentes React reutilizables - Sistema de diseño modular y escalable
30 lines (26 loc) • 1.23 kB
JSX
import React, { lazy, Suspense } from 'react';
const LazyIcon = lazy(() => import('./Icon.jsx'));
const Icon = (props) => (
<Suspense fallback={
<div className="animate-pulse bg-gray-200 rounded-full inline-flex items-center justify-center"
style={{
width: props.size === 'xs' ? '12px' :
props.size === 'small' ? '16px' :
props.size === 'large' ? '24px' :
props.size === 'xlarge' ? '32px' :
props.size === '2x' ? '40px' :
props.size === '3x' ? '60px' : '20px',
height: props.size === 'xs' ? '12px' :
props.size === 'small' ? '16px' :
props.size === 'large' ? '24px' :
props.size === 'xlarge' ? '32px' :
props.size === '2x' ? '40px' :
props.size === '3x' ? '60px' : '20px'
}}>
<div className="w-2/3 h-2/3 bg-gray-300 rounded"></div>
</div>
}>
<LazyIcon {...props} />
</Suspense>
);
export default Icon;