xref: /MusicFree/src/pages/musicDetail/components/bottom/playControl.tsx (revision 4060c00a75883036bbd315fb25c90065209312b3)
1*4060c00aS猫头猫import React from 'react';
2*4060c00aS猫头猫import {StyleSheet, View} from 'react-native';
3bf6e62f2S猫头猫import rpx from '@/utils/rpx';
4bf6e62f2S猫头猫import Icon from 'react-native-vector-icons/MaterialCommunityIcons';
5242960d3S猫头猫import MusicQueue from '@/core/musicQueue';
6bf6e62f2S猫头猫import repeatModeConst from '@/constants/repeatModeConst';
7bf6e62f2S猫头猫import musicIsPaused from '@/utils/musicIsPaused';
8378a6099S猫头猫import usePanel from '@/components/panels/usePanel';
9bf6e62f2S猫头猫
10*4060c00aS猫头猫export default function () {
11bf6e62f2S猫头猫    const repeatMode = MusicQueue.useRepeatMode();
12bf6e62f2S猫头猫    const musicState = MusicQueue.usePlaybackState();
1308a8e62cS猫头猫    const {showPanel} = usePanel();
14bf6e62f2S猫头猫
15bf6e62f2S猫头猫    return (
16bf6e62f2S猫头猫        <>
17bf6e62f2S猫头猫            <View style={style.wrapper}>
18bf6e62f2S猫头猫                <Icon
19bf6e62f2S猫头猫                    color={'white'}
20bf6e62f2S猫头猫                    name={repeatModeConst[repeatMode].icon}
21bf6e62f2S猫头猫                    size={rpx(56)}
22bf6e62f2S猫头猫                    onPress={() => {
23bf6e62f2S猫头猫                        MusicQueue.toggleRepeatMode();
24*4060c00aS猫头猫                    }}
25*4060c00aS猫头猫                />
26bf6e62f2S猫头猫                <Icon
27bf6e62f2S猫头猫                    color={'white'}
28bf6e62f2S猫头猫                    name={'skip-previous'}
29bf6e62f2S猫头猫                    size={rpx(56)}
30bf6e62f2S猫头猫                    onPress={() => {
31bf6e62f2S猫头猫                        MusicQueue.skipToPrevious();
32*4060c00aS猫头猫                    }}
33*4060c00aS猫头猫                />
34bf6e62f2S猫头猫                <Icon
35bf6e62f2S猫头猫                    color={'white'}
36bf6e62f2S猫头猫                    name={
37bf6e62f2S猫头猫                        musicIsPaused(musicState)
38bf6e62f2S猫头猫                            ? 'play-circle-outline'
39bf6e62f2S猫头猫                            : 'pause-circle-outline'
40bf6e62f2S猫头猫                    }
41bf6e62f2S猫头猫                    size={rpx(96)}
42bf6e62f2S猫头猫                    onPress={() => {
43bf6e62f2S猫头猫                        if (musicIsPaused(musicState)) {
44bf6e62f2S猫头猫                            MusicQueue.play();
45bf6e62f2S猫头猫                        } else {
46bf6e62f2S猫头猫                            MusicQueue.pause();
47bf6e62f2S猫头猫                        }
48*4060c00aS猫头猫                    }}
49*4060c00aS猫头猫                />
50bf6e62f2S猫头猫                <Icon
51bf6e62f2S猫头猫                    color={'white'}
52bf6e62f2S猫头猫                    name={'skip-next'}
53bf6e62f2S猫头猫                    size={rpx(56)}
54bf6e62f2S猫头猫                    onPress={() => {
55bf6e62f2S猫头猫                        MusicQueue.skipToNext();
56*4060c00aS猫头猫                    }}
57*4060c00aS猫头猫                />
58bf6e62f2S猫头猫                <Icon
59bf6e62f2S猫头猫                    color={'white'}
60bf6e62f2S猫头猫                    name={'playlist-music'}
61bf6e62f2S猫头猫                    size={rpx(56)}
62bf6e62f2S猫头猫                    onPress={() => {
63bf6e62f2S猫头猫                        showPanel('PlayList');
64*4060c00aS猫头猫                    }}
65*4060c00aS猫头猫                />
66bf6e62f2S猫头猫            </View>
67bf6e62f2S猫头猫        </>
68bf6e62f2S猫头猫    );
69bf6e62f2S猫头猫}
70bf6e62f2S猫头猫
71bf6e62f2S猫头猫const style = StyleSheet.create({
72bf6e62f2S猫头猫    wrapper: {
73bf6e62f2S猫头猫        width: rpx(750),
74bf6e62f2S猫头猫        marginTop: rpx(36),
75bf6e62f2S猫头猫        height: rpx(100),
76bf6e62f2S猫头猫        flexDirection: 'row',
77bf6e62f2S猫头猫        justifyContent: 'space-around',
78bf6e62f2S猫头猫        alignItems: 'center',
79bf6e62f2S猫头猫    },
80bf6e62f2S猫头猫});
81