UNPKG

@eslam-elmeniawy/react-native-common-components

Version:

Common `ReactNative` components packed in library for usage in projects.

67 lines (55 loc) 1.77 kB
// Types imports. import type { ViewProps } from 'react-native'; import type { MD2Theme, MD3Theme } from 'react-native-paper'; export type ResizeModeType = 'cover' | 'contain' | 'stretch' | 'center'; export type PriorityType = 'low' | 'normal' | 'high'; export type CacheType = 'immutable' | 'web' | 'cacheOnly'; export interface LoadingProps { showLoading?: boolean; color?: string; backgroundColor?: string; } export interface Props extends ViewProps { size?: number; source?: string; placeholder?: number; vectorPlaceholder?: number; resizeMode?: ResizeModeType; priority?: PriorityType; cache?: CacheType; loadingProps?: LoadingProps; } export interface PropsWithTheme extends Props { theme: MD2Theme | MD3Theme; } export interface PlaceholderProps { source?: string; placeholder?: number; vectorPlaceholder?: number; resizeMode?: ResizeModeType; isLoading?: boolean; isError?: boolean; progress?: number; progressSize?: number; } export interface ImageProps extends PlaceholderProps { priority?: PriorityType; cache?: CacheType; loadingProps?: LoadingProps; setLoadingState?: React.Dispatch<React.SetStateAction<boolean>>; setErrorState?: React.Dispatch<React.SetStateAction<boolean>>; setProgressState?: React.Dispatch<React.SetStateAction<number>>; setProgressSizeState?: React.Dispatch<React.SetStateAction<number>>; } export interface ImagePropsWithTheme extends ImageProps { theme: MD2Theme | MD3Theme; } export interface ImageLoadingProps { loadingProps?: LoadingProps; setProgressSizeState?: React.Dispatch<React.SetStateAction<number>>; progress?: number; progressSize?: number; } export interface ImageLoadingPropsWithTheme extends ImageLoadingProps { theme: MD2Theme | MD3Theme; }