@auraxy/react-async-button
Version:
A button component of react, realizes the button auto-lock when it clicked and auto-unlock after the async action has done
36 lines (28 loc) • 780 B
TypeScript
import React, { Dispatch, ReactNode } from 'react'
declare enum Status {
Normal = 0,
Pending = 1,
Success = 2,
Failed = 3,
}
interface StatusContent {
children?: ReactNode
loadingContent?: ReactNode
successContent?: ReactNode
failedContent?: ReactNode
}
declare function useButtonStatus(
contents: StatusContent,
canUseAgain: boolean,
): [ReactNode, boolean, string, Dispatch<Status>]
interface ButtonProps
extends StatusContent,
React.DetailedHTMLProps<
React.ButtonHTMLAttributes<HTMLButtonElement>,
HTMLButtonElement
> {
canUseAgain?: boolean
onClick(e?: React.MouseEvent): Promise<any>
}
declare const ReactAsyncButton: React.FC<ButtonProps>
export { ButtonProps, ReactAsyncButton, Status, StatusContent, useButtonStatus }