1a3b33415S猫头猫import React from 'react'; 24060c00aS猫头猫import {Text} from 'react-native'; 3a3b33415S猫头猫import rpx from '@/utils/rpx'; 4a3b33415S猫头猫import ListItem, {ILeftProps} from '../base/listItem'; 5a3b33415S猫头猫import Icon from 'react-native-vector-icons/MaterialCommunityIcons'; 6242960d3S猫头猫import MusicQueue from '@/core/musicQueue'; 7a3b33415S猫头猫import IconButton from '../base/iconButton'; 8a3b33415S猫头猫import usePanel from '../panels/usePanel'; 90e4173cdS猫头猫import LocalMusicSheet from '@/core/localMusicSheet'; 10a3b33415S猫头猫 11a3b33415S猫头猫interface IMusicItemProps { 12a3b33415S猫头猫 index?: string | number; 13a3b33415S猫头猫 left?: ILeftProps; 1494824d29S猫头猫 right?: () => JSX.Element; 15a3b33415S猫头猫 musicItem: IMusic.IMusicItem; 16a3b33415S猫头猫 musicSheet?: IMusic.IMusicSheetItem; 17a3b33415S猫头猫 onItemPress?: (musicItem: IMusic.IMusicItem) => void; 1894824d29S猫头猫 onItemLongPress?: () => void; 19aeaa4fceS猫头猫 itemWidth?: number; 2094824d29S猫头猫 itemBackgroundColor?: string; 21a3b33415S猫头猫} 22a3b33415S猫头猫const ITEM_HEIGHT = rpx(120); 23a3b33415S猫头猫export default function MusicItem(props: IMusicItemProps) { 2494824d29S猫头猫 const { 2594824d29S猫头猫 musicItem, 2694824d29S猫头猫 index, 2794824d29S猫头猫 left, 2894824d29S猫头猫 right, 2994824d29S猫头猫 onItemPress, 3094824d29S猫头猫 onItemLongPress, 3194824d29S猫头猫 musicSheet, 32aeaa4fceS猫头猫 itemWidth, 3394824d29S猫头猫 itemBackgroundColor, 3494824d29S猫头猫 } = props; 35a3b33415S猫头猫 const {showPanel} = usePanel(); 36a3b33415S猫头猫 37a3b33415S猫头猫 return ( 38a3b33415S猫头猫 <ListItem 39aeaa4fceS猫头猫 itemWidth={itemWidth} 40a3b33415S猫头猫 itemHeight={ITEM_HEIGHT} 41*950202e4S猫头猫 itemPaddingLeft={index !== undefined ? 0 : undefined} 4294824d29S猫头猫 itemBackgroundColor={itemBackgroundColor} 4394824d29S猫头猫 onLongPress={onItemLongPress} 44*950202e4S猫头猫 left={index !== undefined ? {index: index, width: rpx(96)} : left} 45a3b33415S猫头猫 title={musicItem.title} 46a3b33415S猫头猫 desc={ 47a3b33415S猫头猫 <> 480e4173cdS猫头猫 {LocalMusicSheet.isLocalMusic(musicItem) && ( 494060c00aS猫头猫 <Icon 504060c00aS猫头猫 color="#11659a" 514060c00aS猫头猫 name="check-circle" 524060c00aS猫头猫 size={rpx(22)} 534060c00aS猫头猫 /> 54a3b33415S猫头猫 )} 55a3b33415S猫头猫 <Text> 56a3b33415S猫头猫 {musicItem.artist} - {musicItem.album} 57a3b33415S猫头猫 </Text> 58a3b33415S猫头猫 </> 59a3b33415S猫头猫 } 60a3b33415S猫头猫 tag={musicItem.platform} 61a3b33415S猫头猫 onPress={() => { 62a3b33415S猫头猫 if (onItemPress) { 63a3b33415S猫头猫 onItemPress(musicItem); 64a3b33415S猫头猫 } else { 65a3b33415S猫头猫 MusicQueue.play(musicItem); 66a3b33415S猫头猫 } 67a3b33415S猫头猫 }} 6894824d29S猫头猫 right={ 6994824d29S猫头猫 right 7094824d29S猫头猫 ? right 7194824d29S猫头猫 : () => ( 72a3b33415S猫头猫 <IconButton 7394824d29S猫头猫 name={'dots-vertical'} 74a3b33415S猫头猫 size="normal" 75a3b33415S猫头猫 fontColor="normal" 76a3b33415S猫头猫 onPress={() => { 7794824d29S猫头猫 showPanel('MusicItemOptions', { 7894824d29S猫头猫 musicItem, 7994824d29S猫头猫 musicSheet, 8094824d29S猫头猫 }); 814060c00aS猫头猫 }} 824060c00aS猫头猫 /> 8394824d29S猫头猫 ) 8494824d29S猫头猫 } 854060c00aS猫头猫 /> 86a3b33415S猫头猫 ); 87a3b33415S猫头猫} 88