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;