xref: /MusicFree/src/components/base/playAllBar.tsx (revision 5500cea7e936041b68a2f3709a583c2f0181b9e6)
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 Icon from 'react-native-vector-icons/MaterialCommunityIcons';
79801b15cS猫头猫import ThemeText from './themeText';
89801b15cS猫头猫import useColors from '@/hooks/useColors';
9c15039e2S猫头猫import {showPanel} from '../panels/usePanel';
10e650bfb3S猫头猫import IconButton from './iconButton';
11*5500cea7S猫头猫import TrackPlayer from '@/core/trackPlayer';
129801b15cS猫头猫
139801b15cS猫头猫interface IProps {
149801b15cS猫头猫    musicList: IMusic.IMusicItem[] | null;
159801b15cS猫头猫    sheetName?: string;
1632c3c781S猫头猫    sheetId?: string;
179801b15cS猫头猫}
189801b15cS猫头猫export default function (props: IProps) {
1932c3c781S猫头猫    const {musicList, sheetName, sheetId} = props;
209801b15cS猫头猫    const colors = useColors();
219801b15cS猫头猫    const navigate = useNavigate();
229801b15cS猫头猫
239801b15cS猫头猫    return (
24277c5280S猫头猫        <View style={style.topWrapper}>
259801b15cS猫头猫            <Pressable
269801b15cS猫头猫                style={style.playAll}
279801b15cS猫头猫                onPress={() => {
289801b15cS猫头猫                    if (musicList) {
29*5500cea7S猫头猫                        TrackPlayer.playWithReplacePlayList(
309801b15cS猫头猫                            musicList[0],
319801b15cS猫头猫                            musicList,
329801b15cS猫头猫                        );
339801b15cS猫头猫                    }
349801b15cS猫头猫                }}>
359801b15cS猫头猫                <Icon
369801b15cS猫头猫                    name="play-circle-outline"
379801b15cS猫头猫                    style={style.playAllIcon}
389801b15cS猫头猫                    size={iconSizeConst.normal}
399801b15cS猫头猫                    color={colors.text}
409801b15cS猫头猫                />
419801b15cS猫头猫                <ThemeText fontWeight="bold">播放全部</ThemeText>
429801b15cS猫头猫            </Pressable>
439801b15cS猫头猫            <IconButton
44e650bfb3S猫头猫                name={'plus-box-multiple-outline'}
45e650bfb3S猫头猫                sizeType={'normal'}
46e650bfb3S猫头猫                style={style.optionButton}
479801b15cS猫头猫                onPress={async () => {
489801b15cS猫头猫                    showPanel('AddToMusicSheet', {
499801b15cS猫头猫                        musicItem: musicList ?? [],
509801b15cS猫头猫                        newSheetDefaultName: sheetName,
519801b15cS猫头猫                    });
529801b15cS猫头猫                }}
539801b15cS猫头猫            />
549801b15cS猫头猫            <IconButton
55e650bfb3S猫头猫                name="playlist-edit"
56e650bfb3S猫头猫                sizeType={'normal'}
57e650bfb3S猫头猫                style={style.optionButton}
589801b15cS猫头猫                onPress={async () => {
599801b15cS猫头猫                    navigate(ROUTE_PATH.MUSIC_LIST_EDITOR, {
609801b15cS猫头猫                        musicList: musicList,
619801b15cS猫头猫                        musicSheet: {
629801b15cS猫头猫                            title: sheetName,
6332c3c781S猫头猫                            id: sheetId,
649801b15cS猫头猫                        },
659801b15cS猫头猫                    });
669801b15cS猫头猫                }}
679801b15cS猫头猫            />
689801b15cS猫头猫        </View>
699801b15cS猫头猫    );
709801b15cS猫头猫}
719801b15cS猫头猫
729801b15cS猫头猫const style = StyleSheet.create({
739801b15cS猫头猫    /** playall */
749801b15cS猫头猫    topWrapper: {
75e650bfb3S猫头猫        height: rpx(84),
769801b15cS猫头猫        paddingHorizontal: rpx(24),
779801b15cS猫头猫        flexDirection: 'row',
789801b15cS猫头猫        alignItems: 'center',
799801b15cS猫头猫    },
809801b15cS猫头猫    playAll: {
819801b15cS猫头猫        flex: 1,
829801b15cS猫头猫        flexDirection: 'row',
839801b15cS猫头猫        alignItems: 'center',
849801b15cS猫头猫    },
859801b15cS猫头猫    playAllIcon: {
869801b15cS猫头猫        marginRight: rpx(12),
879801b15cS猫头猫    },
88e650bfb3S猫头猫    optionButton: {
89e650bfb3S猫头猫        marginLeft: rpx(36),
90e650bfb3S猫头猫    },
919801b15cS猫头猫});
92