xref: /MusicFree/src/components/base/playAllBar.tsx (revision e650bfb34226e2a09d15cbf7832c4805a87cd60e)
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 MusicQueue from '@/core/musicQueue';
69801b15cS猫头猫import {ROUTE_PATH, useNavigate} from '@/entry/router';
79801b15cS猫头猫import Color from 'color';
89801b15cS猫头猫import Icon from 'react-native-vector-icons/MaterialCommunityIcons';
99801b15cS猫头猫import ThemeText from './themeText';
109801b15cS猫头猫import useColors from '@/hooks/useColors';
11c15039e2S猫头猫import {showPanel} from '../panels/usePanel';
12*e650bfb3S猫头猫import IconButton from './iconButton';
139801b15cS猫头猫
149801b15cS猫头猫interface IProps {
159801b15cS猫头猫    musicList: IMusic.IMusicItem[] | null;
169801b15cS猫头猫    sheetName?: string;
179801b15cS猫头猫}
189801b15cS猫头猫export default function (props: IProps) {
199801b15cS猫头猫    const {musicList, sheetName} = props;
209801b15cS猫头猫    const colors = useColors();
219801b15cS猫头猫    const navigate = useNavigate();
229801b15cS猫头猫
239801b15cS猫头猫    return (
249801b15cS猫头猫        <View
259801b15cS猫头猫            style={[
269801b15cS猫头猫                style.topWrapper,
279801b15cS猫头猫                {
289801b15cS猫头猫                    backgroundColor: Color(colors.primary)
299801b15cS猫头猫                        .alpha(0.15)
309801b15cS猫头猫                        .toString(),
319801b15cS猫头猫                },
329801b15cS猫头猫            ]}>
339801b15cS猫头猫            <Pressable
349801b15cS猫头猫                style={style.playAll}
359801b15cS猫头猫                onPress={() => {
369801b15cS猫头猫                    if (musicList) {
379801b15cS猫头猫                        MusicQueue.playWithReplaceQueue(
389801b15cS猫头猫                            musicList[0],
399801b15cS猫头猫                            musicList,
409801b15cS猫头猫                        );
419801b15cS猫头猫                    }
429801b15cS猫头猫                }}>
439801b15cS猫头猫                <Icon
449801b15cS猫头猫                    name="play-circle-outline"
459801b15cS猫头猫                    style={style.playAllIcon}
469801b15cS猫头猫                    size={iconSizeConst.normal}
479801b15cS猫头猫                    color={colors.text}
489801b15cS猫头猫                />
499801b15cS猫头猫                <ThemeText fontWeight="bold">播放全部</ThemeText>
509801b15cS猫头猫            </Pressable>
519801b15cS猫头猫            <IconButton
52*e650bfb3S猫头猫                name={'plus-box-multiple-outline'}
53*e650bfb3S猫头猫                sizeType={'normal'}
54*e650bfb3S猫头猫                style={style.optionButton}
559801b15cS猫头猫                onPress={async () => {
569801b15cS猫头猫                    showPanel('AddToMusicSheet', {
579801b15cS猫头猫                        musicItem: musicList ?? [],
589801b15cS猫头猫                        newSheetDefaultName: sheetName,
599801b15cS猫头猫                    });
609801b15cS猫头猫                }}
619801b15cS猫头猫            />
629801b15cS猫头猫            <IconButton
63*e650bfb3S猫头猫                name="playlist-edit"
64*e650bfb3S猫头猫                sizeType={'normal'}
65*e650bfb3S猫头猫                style={style.optionButton}
669801b15cS猫头猫                onPress={async () => {
679801b15cS猫头猫                    navigate(ROUTE_PATH.MUSIC_LIST_EDITOR, {
689801b15cS猫头猫                        musicList: musicList,
699801b15cS猫头猫                        musicSheet: {
709801b15cS猫头猫                            title: sheetName,
719801b15cS猫头猫                        },
729801b15cS猫头猫                    });
739801b15cS猫头猫                }}
749801b15cS猫头猫            />
759801b15cS猫头猫        </View>
769801b15cS猫头猫    );
779801b15cS猫头猫}
789801b15cS猫头猫
799801b15cS猫头猫const style = StyleSheet.create({
809801b15cS猫头猫    /** playall */
819801b15cS猫头猫    topWrapper: {
82*e650bfb3S猫头猫        height: rpx(84),
839801b15cS猫头猫        paddingHorizontal: rpx(24),
849801b15cS猫头猫        flexDirection: 'row',
859801b15cS猫头猫        alignItems: 'center',
869801b15cS猫头猫    },
879801b15cS猫头猫    playAll: {
889801b15cS猫头猫        flex: 1,
899801b15cS猫头猫        flexDirection: 'row',
909801b15cS猫头猫        alignItems: 'center',
919801b15cS猫头猫    },
929801b15cS猫头猫    playAllIcon: {
939801b15cS猫头猫        marginRight: rpx(12),
949801b15cS猫头猫    },
95*e650bfb3S猫头猫    optionButton: {
96*e650bfb3S猫头猫        marginLeft: rpx(36),
97*e650bfb3S猫头猫    },
989801b15cS猫头猫});
99