import React from 'react'; import { View, Text, Pressable } from 'react-native'; import { Cross, Close } from '@pingtou/rn-vant-icons'; import Image from '../Image'; import Loading from '../Loading'; import { createItemStyles } from './style'; import { useThemeFactory } from '../Theme'; import type { UploaderPrviewItemProps } from './types'; const ImageItem = (props: UploaderPrviewItemProps): JSX.Element => { const { onPreview, statusTextRender, status, url } = props; const { styles, theme } = useThemeFactory(createItemStyles); const renderPreview = () => ( {props.previewCoverRender?.()} ); const renderMask = () => { if (status === 'failed' || status === 'pending') { const MaskIcon = status === 'failed' ? ( ) : ( ); return ( {MaskIcon} {statusTextRender && {statusTextRender(status)}} ); } return null; }; const renderDeleteIcon = () => { if (props.deletable) { if (props.deleteRender) { return props.deleteRender(props.onDelete); } return ( ); } return null; }; return ( {renderPreview()} {renderMask()} {renderDeleteIcon()} ); }; export default ImageItem;