import { CircularProgress, type CircularProgressProps } from '@mui/material';
import { withDeprecated } from '../Util/deprecate';

export interface SpinnerProps extends Omit<CircularProgressProps, 'size'> {
  /** 之前 size prop 是 array 类型, 需要与 CircularProgress#size 兼容 */
  size?: number | [number, number];
}

/** 之前的 Spinner 实现由内外 2 个环构成, 现在改为基于 @mui/material/CircularProgress 的实现 */
function Spinner({ ...props }: SpinnerProps) {
  const _props = { ...props } as CircularProgressProps;

  // 兼容之前的 size prop (设置外圈/内圈的尺寸)
  if (_props.size && Array.isArray(props.size)) {
    [_props.size] = props.size;
  }
  return <CircularProgress {..._props} />;
}

export default withDeprecated(Spinner, { name: 'Spinner', alternative: '@mui/material/CircularProgress' });
