xref: /MusicFree/src/pages/downloading/downloadingList.tsx (revision 2d2302c582f52e47c01251f44c762549eff3ae8a)
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