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'; 8*c15039e2S猫头猫 90e4173cdS猫头猫import LocalMusicSheet from '@/core/localMusicSheet'; 10*c15039e2S猫头猫import {showPanel} from '../panels/usePanel'; 11a3b33415S猫头猫 12a3b33415S猫头猫interface IMusicItemProps { 13a3b33415S猫头猫 index?: string | number; 14a3b33415S猫头猫 left?: ILeftProps; 1594824d29S猫头猫 right?: () => JSX.Element; 16a3b33415S猫头猫 musicItem: IMusic.IMusicItem; 17a3b33415S猫头猫 musicSheet?: IMusic.IMusicSheetItem; 18a3b33415S猫头猫 onItemPress?: (musicItem: IMusic.IMusicItem) => void; 1994824d29S猫头猫 onItemLongPress?: () => void; 203b155a65S猫头猫 itemWidth?: number | string; 2194824d29S猫头猫 itemBackgroundColor?: string; 2217c7a0a6S猫头猫 itemPaddingRight?: number; 23a3b33415S猫头猫} 24a3b33415S猫头猫const ITEM_HEIGHT = rpx(120); 25a3b33415S猫头猫export default function MusicItem(props: IMusicItemProps) { 2694824d29S猫头猫 const { 2794824d29S猫头猫 musicItem, 2894824d29S猫头猫 index, 2994824d29S猫头猫 left, 3094824d29S猫头猫 right, 3194824d29S猫头猫 onItemPress, 3294824d29S猫头猫 onItemLongPress, 3394824d29S猫头猫 musicSheet, 34aeaa4fceS猫头猫 itemWidth, 3517c7a0a6S猫头猫 itemPaddingRight, 3694824d29S猫头猫 itemBackgroundColor, 3794824d29S猫头猫 } = props; 38a3b33415S猫头猫 39a3b33415S猫头猫 return ( 40a3b33415S猫头猫 <ListItem 41aeaa4fceS猫头猫 itemWidth={itemWidth} 42a3b33415S猫头猫 itemHeight={ITEM_HEIGHT} 43950202e4S猫头猫 itemPaddingLeft={index !== undefined ? 0 : undefined} 4417c7a0a6S猫头猫 itemPaddingRight={itemPaddingRight} 4594824d29S猫头猫 itemBackgroundColor={itemBackgroundColor} 4694824d29S猫头猫 onLongPress={onItemLongPress} 47950202e4S猫头猫 left={index !== undefined ? {index: index, width: rpx(96)} : left} 48a3b33415S猫头猫 title={musicItem.title} 49a3b33415S猫头猫 desc={ 50a3b33415S猫头猫 <> 510e4173cdS猫头猫 {LocalMusicSheet.isLocalMusic(musicItem) && ( 524060c00aS猫头猫 <Icon 534060c00aS猫头猫 color="#11659a" 544060c00aS猫头猫 name="check-circle" 554060c00aS猫头猫 size={rpx(22)} 564060c00aS猫头猫 /> 57a3b33415S猫头猫 )} 58a3b33415S猫头猫 <Text> 59b1fa57d0S猫头猫 {musicItem.artist} 60b1fa57d0S猫头猫 {musicItem.album ? ` - ${musicItem.album}` : ''} 61a3b33415S猫头猫 </Text> 62a3b33415S猫头猫 </> 63a3b33415S猫头猫 } 64a3b33415S猫头猫 tag={musicItem.platform} 65a3b33415S猫头猫 onPress={() => { 66a3b33415S猫头猫 if (onItemPress) { 67a3b33415S猫头猫 onItemPress(musicItem); 68a3b33415S猫头猫 } else { 69a3b33415S猫头猫 MusicQueue.play(musicItem); 70a3b33415S猫头猫 } 71a3b33415S猫头猫 }} 7294824d29S猫头猫 right={ 7394824d29S猫头猫 right 7494824d29S猫头猫 ? right 7594824d29S猫头猫 : () => ( 76a3b33415S猫头猫 <IconButton 7794824d29S猫头猫 name={'dots-vertical'} 78a3b33415S猫头猫 size="normal" 79a3b33415S猫头猫 fontColor="normal" 80a3b33415S猫头猫 onPress={() => { 8194824d29S猫头猫 showPanel('MusicItemOptions', { 8294824d29S猫头猫 musicItem, 8394824d29S猫头猫 musicSheet, 8494824d29S猫头猫 }); 854060c00aS猫头猫 }} 864060c00aS猫头猫 /> 8794824d29S猫头猫 ) 8894824d29S猫头猫 } 894060c00aS猫头猫 /> 90a3b33415S猫头猫 ); 91a3b33415S猫头猫} 92