rc-slider-captcha
Version:
React slider captcha component.
86 lines (85 loc) • 2.49 kB
TypeScript
import { FC, Ref, HTMLAttributes, ReactNode } from 'react';
import { SliderButtonProps } from '../SliderButton';
import '../style';
import { Status } from '../interface';
export type TipTextType = {
/**
* @description 默认状态显示内容。
* @default '向右拖动滑块填充拼图'
*/
default: ReactNode;
/**
* @description 加载中显示内容。
* @default '加载中...'
*/
loading: ReactNode;
/**
* @description 用户操作滑块移动中显示内容。
* @default null
*/
moving: ReactNode;
/**
* @description 用户停止操作验证中显示内容。
* @default null
*/
verifying: ReactNode;
/**
* @description 验证成功显示内容。
* @default null
*/
success: ReactNode;
/**
* @description 验证失败显示内容。
* @default null
*/
error: ReactNode;
/**
* @description 验证失败且连续错误次数超出限制显示内容。
* @default <SliderIcon type="x" style={{ fontSize: 20 }} /> 失败过多,点击重试
*/
errors: ReactNode;
/**
* @description `request` 请求返回失败显示内容。
* @default '加载失败,点击重试'
*/
loadFailed: ReactNode;
};
export type TipIconType = {
/**
* @description 默认状态滑轨按钮图标。
* @default <SliderIcon type="arrowRight" />
*/
default: ReactNode;
/**
* @description 加载中滑轨按钮图标。
* @default <SliderIcon type="loading" spin />
*/
loading: ReactNode;
/**
* @description 验证失败滑轨提示图标。
* @default <SliderIcon type="x" />
*/
error: ReactNode;
/**
* @description 验证成功滑轨提示图标。
* @default <SliderIcon type="check" />
*/
success: ReactNode;
};
export type ControlBarRefType = {
getSliderButtonWidth(force?: boolean): number;
getIndicatorBorderWidth(force?: boolean): number;
getRect(force?: boolean): DOMRect;
updateLeft(left: number): void;
};
interface ControlBarProps extends HTMLAttributes<HTMLDivElement> {
status?: Status;
isLimitErrors?: boolean;
tipText?: Partial<TipTextType>;
tipIcon?: Partial<TipIconType>;
sliderButtonProps?: SliderButtonProps;
indicatorProps?: HTMLAttributes<HTMLDivElement>;
controlRef?: Ref<ControlBarRefType>;
}
declare const ControlBar: FC<ControlBarProps>;
export default ControlBar;