19801b15cS猫头猫import React from 'react'; 29801b15cS猫头猫import {Pressable, StyleSheet, View} from 'react-native'; 39801b15cS猫头猫import rpx from '@/utils/rpx'; 49801b15cS猫头猫import {iconSizeConst} from '@/constants/uiConst'; 59801b15cS猫头猫import {ROUTE_PATH, useNavigate} from '@/entry/router'; 69801b15cS猫头猫import ThemeText from './themeText'; 79801b15cS猫头猫import useColors from '@/hooks/useColors'; 8c15039e2S猫头猫import {showPanel} from '../panels/usePanel'; 9e650bfb3S猫头猫import IconButton from './iconButton'; 105500cea7S猫头猫import TrackPlayer from '@/core/trackPlayer'; 11bef6dda8S猫头猫import MusicSheet from '@/core/musicSheet'; 12bef6dda8S猫头猫import Toast from '@/utils/toast'; 13*5589cdf3S猫头猫import Icon from '@/components/base/icon.tsx'; 149801b15cS猫头猫 159801b15cS猫头猫interface IProps { 169801b15cS猫头猫 musicList: IMusic.IMusicItem[] | null; 17bef6dda8S猫头猫 canStar?: boolean; 18bef6dda8S猫头猫 musicSheet?: IMusic.IMusicSheetItem | null; 199801b15cS猫头猫} 209801b15cS猫头猫export default function (props: IProps) { 21bef6dda8S猫头猫 const {musicList, canStar, musicSheet} = props; 22bef6dda8S猫头猫 23bef6dda8S猫头猫 const sheetName = musicSheet?.title; 24bef6dda8S猫头猫 const sheetId = musicSheet?.id; 25bef6dda8S猫头猫 269801b15cS猫头猫 const colors = useColors(); 279801b15cS猫头猫 const navigate = useNavigate(); 289801b15cS猫头猫 29bef6dda8S猫头猫 const starred = MusicSheet.useSheetStarred(musicSheet); 30bef6dda8S猫头猫 319801b15cS猫头猫 return ( 32277c5280S猫头猫 <View style={style.topWrapper}> 339801b15cS猫头猫 <Pressable 349801b15cS猫头猫 style={style.playAll} 359801b15cS猫头猫 onPress={() => { 369801b15cS猫头猫 if (musicList) { 375500cea7S猫头猫 TrackPlayer.playWithReplacePlayList( 389801b15cS猫头猫 musicList[0], 399801b15cS猫头猫 musicList, 409801b15cS猫头猫 ); 419801b15cS猫头猫 } 429801b15cS猫头猫 }}> 439801b15cS猫头猫 <Icon 44*5589cdf3S猫头猫 name="play-circle" 459801b15cS猫头猫 style={style.playAllIcon} 469801b15cS猫头猫 size={iconSizeConst.normal} 479801b15cS猫头猫 color={colors.text} 489801b15cS猫头猫 /> 499801b15cS猫头猫 <ThemeText fontWeight="bold">播放全部</ThemeText> 509801b15cS猫头猫 </Pressable> 51bef6dda8S猫头猫 {canStar && musicSheet ? ( 52bef6dda8S猫头猫 <IconButton 53bef6dda8S猫头猫 name={starred ? 'heart' : 'heart-outline'} 54bef6dda8S猫头猫 sizeType={'normal'} 55bef6dda8S猫头猫 color={starred ? '#e31639' : undefined} 56bef6dda8S猫头猫 style={style.optionButton} 57bef6dda8S猫头猫 onPress={async () => { 58bef6dda8S猫头猫 if (!starred) { 59bef6dda8S猫头猫 MusicSheet.starMusicSheet(musicSheet); 60bef6dda8S猫头猫 Toast.success('收藏歌单成功'); 61bef6dda8S猫头猫 } else { 62bef6dda8S猫头猫 MusicSheet.unstarMusicSheet(musicSheet); 63bef6dda8S猫头猫 Toast.success('已取消收藏歌单'); 64bef6dda8S猫头猫 } 65bef6dda8S猫头猫 }} 66bef6dda8S猫头猫 /> 67bef6dda8S猫头猫 ) : null} 689801b15cS猫头猫 <IconButton 69*5589cdf3S猫头猫 name="folder-plus" 70e650bfb3S猫头猫 sizeType={'normal'} 71e650bfb3S猫头猫 style={style.optionButton} 729801b15cS猫头猫 onPress={async () => { 739801b15cS猫头猫 showPanel('AddToMusicSheet', { 749801b15cS猫头猫 musicItem: musicList ?? [], 759801b15cS猫头猫 newSheetDefaultName: sheetName, 769801b15cS猫头猫 }); 779801b15cS猫头猫 }} 789801b15cS猫头猫 /> 799801b15cS猫头猫 <IconButton 80*5589cdf3S猫头猫 name="pencil-square" 81e650bfb3S猫头猫 sizeType={'normal'} 82e650bfb3S猫头猫 style={style.optionButton} 839801b15cS猫头猫 onPress={async () => { 849801b15cS猫头猫 navigate(ROUTE_PATH.MUSIC_LIST_EDITOR, { 859801b15cS猫头猫 musicList: musicList, 869801b15cS猫头猫 musicSheet: { 879801b15cS猫头猫 title: sheetName, 8832c3c781S猫头猫 id: sheetId, 899801b15cS猫头猫 }, 909801b15cS猫头猫 }); 919801b15cS猫头猫 }} 929801b15cS猫头猫 /> 939801b15cS猫头猫 </View> 949801b15cS猫头猫 ); 959801b15cS猫头猫} 969801b15cS猫头猫 979801b15cS猫头猫const style = StyleSheet.create({ 989801b15cS猫头猫 /** playall */ 999801b15cS猫头猫 topWrapper: { 100e650bfb3S猫头猫 height: rpx(84), 1019801b15cS猫头猫 paddingHorizontal: rpx(24), 1029801b15cS猫头猫 flexDirection: 'row', 1039801b15cS猫头猫 alignItems: 'center', 1049801b15cS猫头猫 }, 1059801b15cS猫头猫 playAll: { 1069801b15cS猫头猫 flex: 1, 1079801b15cS猫头猫 flexDirection: 'row', 1089801b15cS猫头猫 alignItems: 'center', 1099801b15cS猫头猫 }, 1109801b15cS猫头猫 playAllIcon: { 1119801b15cS猫头猫 marginRight: rpx(12), 1129801b15cS猫头猫 }, 113e650bfb3S猫头猫 optionButton: { 114e650bfb3S猫头猫 marginLeft: rpx(36), 115e650bfb3S猫头猫 }, 1169801b15cS猫头猫}); 117