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 '@/entry/router'; import ThemeText from './themeText'; import useColors from '@/hooks/useColors'; import {showPanel} from '../panels/usePanel'; import IconButton from './iconButton'; import TrackPlayer from '@/core/trackPlayer'; import MusicSheet from '@/core/musicSheet'; import Toast from '@/utils/toast'; import Icon from '@/components/base/icon.tsx'; 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.useSheetStarred(musicSheet); return ( { if (musicList) { TrackPlayer.playWithReplacePlayList( musicList[0], 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), }, });