1a3b33415S猫头猫import React from 'react'; 2*4060c00aS猫头猫import {Text} from 'react-native'; 3a3b33415S猫头猫import rpx from '@/utils/rpx'; 4a3b33415S猫头猫import ListItem, {ILeftProps} from '../base/listItem'; 5e14deecfS猫头猫import Download from '@/core/download'; 6a3b33415S猫头猫import Icon from 'react-native-vector-icons/MaterialCommunityIcons'; 7242960d3S猫头猫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猫头猫 <> 30e14deecfS猫头猫 {Download.isDownloaded(musicItem) && ( 31*4060c00aS猫头猫 <Icon 32*4060c00aS猫头猫 color="#11659a" 33*4060c00aS猫头猫 name="check-circle" 34*4060c00aS猫头猫 size={rpx(22)} 35*4060c00aS猫头猫 /> 36a3b33415S猫头猫 )} 37a3b33415S猫头猫 <Text> 38a3b33415S猫头猫 {musicItem.artist} - {musicItem.album} 39a3b33415S猫头猫 </Text> 40a3b33415S猫头猫 </> 41a3b33415S猫头猫 } 42a3b33415S猫头猫 tag={musicItem.platform} 43a3b33415S猫头猫 onPress={() => { 44a3b33415S猫头猫 if (onItemPress) { 45a3b33415S猫头猫 onItemPress(musicItem); 46a3b33415S猫头猫 } else { 47a3b33415S猫头猫 MusicQueue.play(musicItem); 48a3b33415S猫头猫 } 49a3b33415S猫头猫 }} 50a3b33415S猫头猫 right={() => ( 51a3b33415S猫头猫 <IconButton 52a3b33415S猫头猫 name="dots-vertical" 53a3b33415S猫头猫 size="normal" 54a3b33415S猫头猫 fontColor="normal" 55a3b33415S猫头猫 onPress={() => { 56a3b33415S猫头猫 showPanel('MusicItemOptions', {musicItem, musicSheet}); 57*4060c00aS猫头猫 }} 58*4060c00aS猫头猫 /> 59*4060c00aS猫头猫 )} 60*4060c00aS猫头猫 /> 61a3b33415S猫头猫 ); 62a3b33415S猫头猫} 63