@fruits-chain/react-native-xiaoshu
Version:
🌈 React Native UI library
144 lines • 3.48 kB
TypeScript
import type { PropsWithChildren, ComponentType, ReactNode } from 'react';
import type { ImageSourcePropType, ViewProps } from 'react-native';
import type { UploaderTheme } from './style';
export type UploaderValue = {
/**
* 当前资源的唯一标识
*/
key: string;
/**
* 文件路径
*/
filepath: string;
/**
* 文件状态
* @default 'done'
*/
status?: 'loading' | 'done' | 'error';
/**
* 是否展示删除按钮
* @default true
*/
deletable?: boolean;
[index: string]: any;
};
export interface UploaderProps<T extends UploaderValue> extends ViewProps {
theme?: Partial<UploaderTheme>;
/**
* 图片数组
*/
list: T[];
/**
* 文件上传数量限制
* @default Number.MAX_SAFE_INTEGER
*/
maxCount?: number;
/**
* 图片展示组件
* @default Image
*/
imageComponent?: ComponentType<{
source?: ImageSourcePropType;
[index: string]: any;
}>;
/**
* 是否展示删除按钮
* @default true
*/
deletable?: boolean;
/**
* 是否展示上传区域
* @default true
*/
showUpload?: boolean;
/**
* 上传区域文字提示
* @default '图片'
*/
uploadText?: string;
/**
* 上传图标
*/
uploadIcon?: ReactNode;
/**
* 点击选择按钮
*/
onPressUpload?: () => void;
/**
* 一行多少个列/图片
* @default 4
*/
colCount?: number;
/**
* 列/图片之间的间距
*/
colGap?: number | 's' | 'm' | 'l';
/**
* 点击某一个图片
*/
onPressImage?: (current: T, index: number, list: T[]) => void;
/**
* 点击删除文件
*/
onPressDelete?: (current: T, index: number, list: T[]) => void;
/**
* 点击上传出错的文件
*/
onPressError?: (current: T, index: number, list: T[]) => void;
}
export interface UploaderImageProps extends Partial<Pick<UploaderValue, 'filepath' | 'status'>>, Pick<UploaderProps<UploaderValue>, 'imageComponent' | 'deletable'>, PropsWithChildren<{}> {
theme?: Partial<UploaderTheme>;
/**
* 缩略图尺寸
*/
size?: number;
/**
* 右边距
*/
marginRight?: number;
/**
* 下边距
*/
marginBottom?: number;
/**
* 点击图片
*/
onPress?: () => void;
/**
* 点击删除图片
*/
onPressDelete?: () => void;
/**
* 是否是上传按钮
*/
isUpload?: boolean;
}
export interface RegularCount {
text?: string;
icon?: ReactNode;
}
export interface UploaderRegularProps<T extends UploaderValue> extends ViewProps, Pick<UploaderProps<T>, 'imageComponent' | 'colCount' | 'colGap' | 'deletable'> {
theme?: Partial<UploaderTheme>;
list: (T | null)[];
/**
* 点击某一个图片
*/
onPressImage?: (current: T, index: number, list: (T | null)[]) => void;
/**
* 点击删除文件
*/
onPressDelete?: (current: T, index: number, list: (T | null)[]) => void;
/**
* 点击上传出错的文件
*/
onPressError?: (current: T, index: number, list: (T | null)[]) => void;
/**
* 共多少个上传,请保持数组引用不变
*/
count: number | (RegularCount | null)[];
/**
* 点击某个按钮
*/
onPressUpload?: (index: number) => void;
}
//# sourceMappingURL=interface.d.ts.map