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;