|
import type { Dispatch, SetStateAction } from 'react' |
|
|
|
export enum ValidatedStatus { |
|
Success = 'success', |
|
Error = 'error', |
|
Exceed = 'exceed', |
|
} |
|
|
|
export type ValidatedStatusState = { |
|
status?: ValidatedStatus |
|
message?: string |
|
} |
|
|
|
export type Status = 'add' | 'fail' | 'success' |
|
|
|
export type ValidateValue = Record<string, any> |
|
|
|
export type ValidateCallback = { |
|
before: (v?: ValidateValue) => boolean | undefined |
|
run?: (v?: ValidateValue) => Promise<ValidatedStatusState> |
|
} |
|
|
|
export type Form = { |
|
key: string |
|
title: string |
|
placeholder: string |
|
value?: string |
|
validate?: ValidateCallback |
|
handleFocus?: (v: ValidateValue, dispatch: Dispatch<SetStateAction<ValidateValue>>) => void |
|
} |
|
|
|
export type KeyFrom = { |
|
text: string |
|
link: string |
|
} |
|
|
|
export type KeyValidatorProps = { |
|
type: string |
|
title: React.ReactNode |
|
status: Status |
|
forms: Form[] |
|
keyFrom: KeyFrom |
|
} |
|
|