1*2d2302c5S猫头猫import React from 'react'; 2*2d2302c5S猫头猫import {FlatList, StyleSheet, Text, View} from 'react-native'; 3*2d2302c5S猫头猫import rpx from '@/utils/rpx'; 4*2d2302c5S猫头猫import DownloadManager from '@/common/downloadManager'; 5*2d2302c5S猫头猫import ListItem from '@/components/base/listItem'; 6*2d2302c5S猫头猫 7*2d2302c5S猫头猫interface IDownloadingListProps {} 8*2d2302c5S猫头猫export default function DownloadingList(props: IDownloadingListProps) { 9*2d2302c5S猫头猫 const downloading = DownloadManager.useDownloadingMusic(); 10*2d2302c5S猫头猫 const pending = DownloadManager.usePendingMusic(); 11*2d2302c5S猫头猫 const progress = DownloadManager.useDownloadingProgress(); 12*2d2302c5S猫头猫 return ( 13*2d2302c5S猫头猫 <View style={style.wrapper}> 14*2d2302c5S猫头猫 <FlatList 15*2d2302c5S猫头猫 data={downloading} 16*2d2302c5S猫头猫 keyExtractor={_ => `dl${_.filename}`} 17*2d2302c5S猫头猫 renderItem={({item}) => ( 18*2d2302c5S猫头猫 <ListItem 19*2d2302c5S猫头猫 title={item.musicItem.title} 20*2d2302c5S猫头猫 desc={`${progress[item.filename]?.progress ?? 0} / ${ 21*2d2302c5S猫头猫 progress[item.filename]?.size 22*2d2302c5S猫头猫 }`}></ListItem> 23*2d2302c5S猫头猫 )}></FlatList> 24*2d2302c5S猫头猫 <FlatList 25*2d2302c5S猫头猫 data={pending} 26*2d2302c5S猫头猫 keyExtractor={_ => `pd${_.filename}`} 27*2d2302c5S猫头猫 renderItem={({item}) => ( 28*2d2302c5S猫头猫 <ListItem title={item.musicItem.title} desc="等待下载"></ListItem> 29*2d2302c5S猫头猫 )}></FlatList> 30*2d2302c5S猫头猫 </View> 31*2d2302c5S猫头猫 ); 32*2d2302c5S猫头猫} 33*2d2302c5S猫头猫 34*2d2302c5S猫头猫const style = StyleSheet.create({ 35*2d2302c5S猫头猫 wrapper: { 36*2d2302c5S猫头猫 width: rpx(750), 37*2d2302c5S猫头猫 flex: 1, 38*2d2302c5S猫头猫 }, 39*2d2302c5S猫头猫}); 40