UNPKG

react-native-component-kits

Version:
106 lines (82 loc) 2.93 kB
import React, { ForwardRefRenderFunction, ForwardRefExoticComponent, PropsWithoutRef, RefAttributes, ComponentType, ComponentProps, MemoExoticComponent, Dispatch, } from 'react'; import { TouchableWithoutFeedbackProps, StyleProp, ViewStyle } from 'react-native'; type SetStateAction<S> = S | ((prevState: S) => S); type ToastProps = { translateEnable?: Boolean; scaleEnable?: Boolean; style?: StyleProp<ViewStyle>; extraBottom?: Number; extraTop?: Number; }; type ShowToastProps = { message: String; duration?: Number; position?: 'top' | 'bottom'; type?: 'success' | 'fail'; onPress?: void; title?: String; }; type ViewVisibleAnimatedProps = { scaleEnable?: Boolean; translateEnable?: Boolean; autoHide?: Boolean; onShowDone?: void; onDone?: void; onShowStart?: () => void; style?: StyleProp<ViewStyle>; delay?: Number; duration?: Number; timeout?: Number; autoShow?: Boolean; pointerEvents?: 'box-none' | 'none' | 'box-only' | 'auto'; scaleType?: 'in' | 'out'; renderHiddenContent?: any; disableHiddenContent?: boolean; children: React.ReactNode; }; export function memoWithRef<T, P = {}>( component: ForwardRefRenderFunction<T, P>, ): ForwardRefExoticComponent<PropsWithoutRef<P> & RefAttributes<T>>; export function memoDeepEqual<T extends ComponentType<any>>( Component: T, propsAreEqual?: ( prevProps: Readonly<ComponentProps<T>>, nextProps: Readonly<ComponentProps<T>>, ) => boolean, ): MemoExoticComponent<T>; export function useStateCallback<S>(initialState: S | (() => S)): [S, Dispatch<SetStateAction<S>>]; export function detectEmail(email: String): Boolean; export function detectUserName(name: String): Boolean; export function detectPhoneNumber(phoneNum: String): Boolean; export function withAnimated(WrappedComponent: React.ComponentType<any>): ComponentType; // Components export class ViewVisibleAnimated extends React.Component<ViewVisibleAnimatedProps> {} interface ScaleButtonProps extends TouchableWithoutFeedbackProps { scaleSize?: Number; disableHiddenContent?: Boolean; } export class ScaleButton extends React.Component<ScaleButtonProps> {} export class Toast extends React.Component<ToastProps> {} export function showToast(props: ShowToastProps): void; export function toastRef(props): any; // Hooks type IuseCountDown = { startDate: Date; endDate: Date; autoStart?: Boolean; intervalTime?: Number; }; export function useCountdown(params: IuseCountDown): any; export function useInterval(callback: void, delay?: number, autoStart?: Boolean): any; type IFetchData = { api: Promise<any>; loadingDefault?: Boolean; pathData?: String }; export function useFetchData(params: IFetchData): any; export function useStateSafe<S>(initialState: S | (() => S)): [S, Dispatch<SetStateAction<S>>];