UNPKG

@flatbiz/antd

Version:
90 lines (87 loc) 3.03 kB
import { HTMLAttributes } from 'react'; /** * 短信倒计时组件的属性接口 * * @extends Omit<HTMLAttributes<HTMLDivElement>, 'onClick'> - 继承 div 元素的所有 HTML 属性,但排除 onClick(组件内部处理点击事件) */ export interface SmsCountDownProps extends Omit<HTMLAttributes<HTMLDivElement>, "onClick"> { /** * 验证码发送请求函数 * @returns Promise<void> - 返回 Promise,成功时开始倒计时,失败时恢复初始状态 * @description 当用户点击发送按钮时调用此函数,函数执行成功后会自动开始倒计时 */ onSendRequest: () => Promise<void>; /** * 倒计时总时长(单位:秒) * @default 60 * @description 从开始倒计时到结束的总秒数,例如 60 表示倒计时 60 秒 */ totalTicks?: number; /** * 倒计时更新间隔(单位:毫秒) * @default 1000 * @description 倒计时数值更新的频率,1000 表示每秒更新一次 */ duration?: number; /** * 是否自动开始倒计时 * @default false * @description * - true: 组件挂载后自动开始倒计时(不会调用 onSendRequest) * - false: 需要用户点击才会触发发送和倒计时 * @note 自动开始时不会调用 onSendRequest,仅用于显示倒计时状态 */ autoStart?: boolean; /** * 倒计时文本格式化模板 * @default '{t}s' * @description 使用 {t} 作为占位符,会被替换为剩余秒数 * @example '{t}s' => '60s', '{t}秒后重试' => '60秒后重试' */ format?: string; /** * 初始状态文案(未发送时显示) * @default '获取验证码' * @description 组件初始状态或倒计时结束后显示的文本 */ sendTxt?: string; /** * 倒计时完成后的文案 * @default '重新获取' * @description 倒计时结束后显示的文本,提示用户可以重新发送 */ sentTxt?: string; /** * 发送中状态文案 * @default '发送中...' * @description 点击发送按钮后,等待 onSendRequest 执行完成期间显示的文本 */ processingTxt?: string; /** * 倒计时数值变化时的回调函数 * @param time - 当前剩余的秒数 * @description 每次倒计时更新时都会调用此函数,可用于外部监听倒计时状态 */ onTick?: (time: number) => void; } /** * 短信倒计时组件的 Ref API 接口 * * @description 通过 ref 可以访问组件内部的方法,用于外部程序化控制组件行为 */ export type SmsCountDownRefApi = { /** * 手动触发发送验证码 * @description 调用此方法会触发 onSendRequest 并开始倒计时,等同于用户点击组件 */ onStart: () => void; }; /** * 短信验证码倒计时组件 * * @param props - 组件属性 * @param ref - 组件引用,用于访问内部方法 * @returns JSX.Element - 返回可点击的倒计时显示元素 */ export declare const SmsCountDown: import("react").ForwardRefExoticComponent<SmsCountDownProps & import("react").RefAttributes<SmsCountDownRefApi>>; export {};