import React from 'react'; import { Text, Alert } from 'react-native'; import { ImageInfo, Space, Uploader } from '@xrnjs/ui'; import Card from '_global/Card'; import { UploadListTypes } from '../enum'; import styles from './style'; const AdvancedFeatures = () => { const handleBeforeUpload = (newFiles: ImageInfo[]) => { return new Promise((resolve) => { Alert.alert( '确认上传', `即将上传 ${newFiles.length} 个文件,是否继续?`, [ { text: '取消', onPress: () => resolve(false) }, { text: '确认', onPress: () => resolve(true) }, ] ); }); }; const handleDoUpload = (files: any[]) => { return new Promise((resolve, reject) => { console.log('开始上传文件:', files); // 模拟上传过程 setTimeout(() => { if (Math.random() > 0.3) { resolve({ success: true, urls: files.map((f) => f.uri) }); } else { reject(new Error('上传失败')); } }, 2000); }); }; const handleUploadSuccess = ( newFiles: any[], allFiles: any[], response: any ) => { console.log('上传成功:', { newFiles, allFiles, response }); Alert.alert('上传成功', `成功上传 ${newFiles.length} 个文件`); }; const handleUploadError = (files: ImageInfo[], error: any) => { console.log('上传失败:', { files, error }); return new Promise((resolve) => { Alert.alert('上传失败', '文件上传失败,是否重试?', [ { text: '取消', onPress: () => resolve(false) }, { text: '重试', onPress: () => resolve(true) }, ]); }); }; const handleRemove = () => { return new Promise((resolve) => { Alert.alert('确认删除', '确定要删除这个文件吗?', [ { text: '取消', onPress: () => resolve(false) }, { text: '删除', onPress: () => resolve(true) }, ]); }); }; return ( 完整上传流程 { console.log('完整流程文件变化:', files); }} /> 文件大小限制 { console.log('大小限制文件变化:', files); }} /> 文本列表样式 { console.log('文本列表文件变化:', files); }} /> 图片质量控制 { console.log('质量控制文件变化:', files); }} /> 预览和下载(多选) { console.log('预览文件:', uri); Alert.alert('预览', `预览文件: ${uri}`); }} onDownload={(file: any) => { console.log('下载文件:', file); Alert.alert('下载', `下载文件: ${file.fileName || file.uri}`); }} onChange={(files: any) => { console.log('预览下载文件变化:', files); }} /> ); }; export default AdvancedFeatures;