File size: 1,122 Bytes
eebc40f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
import React from 'react';
/**
* Composant spinner léger réutilisable
*/
const Spinner = ({
size = '16px',
color = 'currentColor',
className = '',
minHeight = null,
centered = true
}) => {
const spinnerElement = (
<div
className={`spinner ${className}`}
style={{
width: size,
height: size,
border: `2px solid transparent`,
borderTop: `2px solid ${color}`,
borderRadius: '50%',
animation: 'spin 1s linear infinite',
display: 'inline-block'
}}
/>
);
// Si minHeight est spécifiée, wrapper dans un conteneur avec la hauteur minimale
if (minHeight) {
return (
<div
style={{
minHeight: minHeight,
display: centered ? 'flex' : 'block',
justifyContent: centered ? 'center' : 'flex-start',
alignItems: centered ? 'center' : 'flex-start',
width: '100%',
boxSizing: 'border-box' /* Améliorer la gestion de l'espace */
}}
>
{spinnerElement}
</div>
);
}
return spinnerElement;
};
export default Spinner;
|