import React from 'react'; import {Pressable, StyleSheet, View} from 'react-native'; import rpx from '@/utils/rpx'; import {iconSizeConst} from '@/constants/uiConst'; import {ROUTE_PATH, useNavigate} from '@/core/router'; import ThemeText from './themeText'; import useColors from '@/hooks/useColors'; import {showPanel} from '../panels/usePanel'; import IconButton from './iconButton'; import TrackPlayer, {MusicRepeatMode} from '@/core/trackPlayer'; import Toast from '@/utils/toast'; import Icon from '@/components/base/icon.tsx'; import MusicSheet from '@/core/musicSheet'; interface IProps { musicList: IMusic.IMusicItem[] | null; canStar?: boolean; musicSheet?: IMusic.IMusicSheetItem | null; } export default function (props: IProps) { const {musicList, canStar, musicSheet} = props; const sheetName = musicSheet?.title; const sheetId = musicSheet?.id; const colors = useColors(); const navigate = useNavigate(); const starred = MusicSheet.useSheetIsStarred(musicSheet); return ( { if (musicList) { let defaultPlayMusic = musicList[0]; if ( TrackPlayer.getRepeatMode() === MusicRepeatMode.SHUFFLE ) { defaultPlayMusic = musicList[ Math.floor(Math.random() * musicList.length) ]; } TrackPlayer.playWithReplacePlayList( defaultPlayMusic, musicList, ); } }}> 播放全部 {canStar && musicSheet ? ( { if (!starred) { MusicSheet.starMusicSheet(musicSheet); Toast.success('收藏歌单成功'); } else { MusicSheet.unstarMusicSheet(musicSheet); Toast.success('已取消收藏歌单'); } }} /> ) : null} { showPanel('AddToMusicSheet', { musicItem: musicList ?? [], newSheetDefaultName: sheetName, }); }} /> { navigate(ROUTE_PATH.MUSIC_LIST_EDITOR, { musicList: musicList, musicSheet: { title: sheetName, id: sheetId, }, }); }} /> ); } const style = StyleSheet.create({ /** playall */ topWrapper: { height: rpx(84), paddingHorizontal: rpx(24), flexDirection: 'row', alignItems: 'center', }, playAll: { flex: 1, flexDirection: 'row', alignItems: 'center', }, playAllIcon: { marginRight: rpx(12), }, optionButton: { marginLeft: rpx(36), }, });