shineout
Version:
Shein 前端组件库
68 lines (67 loc) • 1.91 kB
TypeScript
import { CSSProperties, ReactElement, ReactNode } from 'react';
import { ConfigType } from '../hoc/Props';
export declare type SpinName = 'default' | 'chasing-dots' | 'cube-grid' | 'double-bounce' | 'fading-circle' | 'four-dots' | 'plane' | 'pulse' | 'ring' | 'scale-circle' | 'three-bounce' | 'wave' | 'chasing-ring';
export interface OriginSpinProps {
wrapperClass?: string;
wrapperStyle?: CSSProperties;
size: number | string;
/**
* @en color
* @cn 颜色
* @default #6c757d
*/
color?: string;
spinClass: (...args: (string | undefined)[]) => string;
render?: (spinClass: OriginSpinProps['spinClass'], i: number, props: OriginSpinProps) => ReactNode;
style?: CSSProperties;
count?: number;
itemStyle?: CSSProperties;
itemClass?: string;
itemSize?: number | string;
}
export interface TypeSpinProps extends Omit<OriginSpinProps, 'style' | 'spinClass' | 'count' | 'render' | 'itemStyle' | 'itemClass' | 'itemSize'> {
}
/**
* @title Spin
*/
export interface BaseSpinProps extends Omit<TypeSpinProps, 'size' | 'wrapperClass' | 'wrapperStyle'> {
/**
* @en Spin external style
* @cn Spin 元素扩展样式
*/
style?: CSSProperties;
/**
* @en Spin external class
* @cn Spin 元素扩展 class
*/
className?: string;
/**
* @en type
* @cn 类型
* @default "fading-circle"
*/
name?: SpinName;
/**
* @en custom tip
* @cn 提示文案
*/
tip?: ReactElement | string;
/**
* @en Spin has children
* @cn 作为包裹元素使用
*/
children?: ReactElement | string;
/**
* @en size
* @cn 尺寸
* @default 40
*/
size?: number | string;
/**
* @en loading
* @cn 是否为加载中
* @default true
*/
loading?: boolean;
}
export declare type SpinProps = ConfigType<BaseSpinProps>;