1a3b33415S猫头猫import React from 'react'; 2a3b33415S猫头猫import {StyleSheet, Text, View} from 'react-native'; 3a3b33415S猫头猫import rpx from '@/utils/rpx'; 4a3b33415S猫头猫import ListItem, {ILeftProps} from '../base/listItem'; 5*242960d3S猫头猫import DownloadManager from '@/core/downloadManager'; 6a3b33415S猫头猫import Icon from 'react-native-vector-icons/MaterialCommunityIcons'; 7*242960d3S猫头猫import MusicQueue from '@/core/musicQueue'; 8a3b33415S猫头猫import IconButton from '../base/iconButton'; 9a3b33415S猫头猫import usePanel from '../panels/usePanel'; 10a3b33415S猫头猫 11a3b33415S猫头猫interface IMusicItemProps { 12a3b33415S猫头猫 index?: string | number; 13a3b33415S猫头猫 left?: ILeftProps; 14a3b33415S猫头猫 musicItem: IMusic.IMusicItem; 15a3b33415S猫头猫 musicSheet?: IMusic.IMusicSheetItem; 16a3b33415S猫头猫 onItemPress?: (musicItem: IMusic.IMusicItem) => void; 17a3b33415S猫头猫} 18a3b33415S猫头猫const ITEM_HEIGHT = rpx(120); 19a3b33415S猫头猫export default function MusicItem(props: IMusicItemProps) { 20a3b33415S猫头猫 const {musicItem, index, left, onItemPress, musicSheet} = props; 21a3b33415S猫头猫 const {showPanel} = usePanel(); 22a3b33415S猫头猫 23a3b33415S猫头猫 return ( 24a3b33415S猫头猫 <ListItem 25a3b33415S猫头猫 itemHeight={ITEM_HEIGHT} 26a3b33415S猫头猫 left={index !== undefined ? {index: index, width: rpx(56)} : left} 27a3b33415S猫头猫 title={musicItem.title} 28a3b33415S猫头猫 desc={ 29a3b33415S猫头猫 <> 30a3b33415S猫头猫 {DownloadManager.isDownloaded(musicItem) && ( 31a3b33415S猫头猫 <Icon color="#11659a" name="check-circle" size={rpx(22)}></Icon> 32a3b33415S猫头猫 )} 33a3b33415S猫头猫 <Text> 34a3b33415S猫头猫 {musicItem.artist} - {musicItem.album} 35a3b33415S猫头猫 </Text> 36a3b33415S猫头猫 </> 37a3b33415S猫头猫 } 38a3b33415S猫头猫 tag={musicItem.platform} 39a3b33415S猫头猫 onPress={() => { 40a3b33415S猫头猫 if (onItemPress) { 41a3b33415S猫头猫 onItemPress(musicItem); 42a3b33415S猫头猫 } else { 43a3b33415S猫头猫 MusicQueue.play(musicItem); 44a3b33415S猫头猫 } 45a3b33415S猫头猫 }} 46a3b33415S猫头猫 right={() => ( 47a3b33415S猫头猫 <IconButton 48a3b33415S猫头猫 name="dots-vertical" 49a3b33415S猫头猫 size="normal" 50a3b33415S猫头猫 fontColor="normal" 51a3b33415S猫头猫 onPress={() => { 52a3b33415S猫头猫 showPanel('MusicItemOptions', {musicItem, musicSheet}); 53a3b33415S猫头猫 }}></IconButton> 54a3b33415S猫头猫 )}></ListItem> 55a3b33415S猫头猫 ); 56a3b33415S猫头猫} 57