import { Text, TouchableOpacity, View } from 'react-native'; import { TextListProps } from './interface'; import React from 'react'; import { IconXDownload1, IconXTrashcan1, IconXDoc2, IconXPpt2, IconXXls2, IconXPdf2, IconXZip2, IconXTxt2, IconXOther2, IconXPng2, IconXMp42, IconXMp32, } from '../../icons'; import createStyle from './style.textlist'; import { useTheme } from '../Theme'; import Loading from '../Loading'; import ShouldRender from '../ShouldRender'; export const renderIcon = (fileName: string, iconSize = 16) => { const fileType = fileName?.split('.')?.pop()?.toLowerCase(); switch (fileType) { case 'doc': case 'docx': return ; case 'ppt': case 'pptx': return ; case 'xls': case 'xlsx': return ; case 'pdf': return ; case 'zip': case 'rar': return ; case 'txt': return ; case 'png': case 'jpg': case 'jpeg': case 'gif': case 'bmp': case 'ico': case 'webp': return ; case 'mp4': case 'avi': case 'mkv': case 'wmv': case 'flv': case '3gp': return ; case 'mp3': case 'wav': case 'flac': case 'acc': case 'ogg': case 'amr': return ; default: return ; } }; const TextList = (props: TextListProps) => { const { files, onDownload, onRemove, onPreviewFile } = props; const token = useTheme(); const styles = createStyle(token); return files && files.length > 0 ? ( {files?.map((file, index) => ( onPreviewFile?.(file?.uri, file)} > {renderIcon(file?.fileName || file?.uri)} {file?.fileName || file?.uri} onDownload?.(file)} > {file.status === 'isUploading' ? ( ) : ( )} onRemove?.(index)}> ))} ) : null; }; export default TextList;