xref: /MusicFree/src/pages/musicDetail/components/bottom/playControl.tsx (revision c446f2b83c1bd26ef7ee96c37926a9cbde29bc16)
14060c00aS猫头猫import React from 'react';
24060c00aS猫头猫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';
9*c446f2b8S猫头猫import useOrientation from '@/hooks/useOrientation';
10bf6e62f2S猫头猫
114060c00aS猫头猫export default function () {
12bf6e62f2S猫头猫    const repeatMode = MusicQueue.useRepeatMode();
13bf6e62f2S猫头猫    const musicState = MusicQueue.usePlaybackState();
1408a8e62cS猫头猫    const {showPanel} = usePanel();
15*c446f2b8S猫头猫    const orientation = useOrientation();
16bf6e62f2S猫头猫
17bf6e62f2S猫头猫    return (
18bf6e62f2S猫头猫        <>
19*c446f2b8S猫头猫            <View
20*c446f2b8S猫头猫                style={[
21*c446f2b8S猫头猫                    style.wrapper,
22*c446f2b8S猫头猫                    orientation === 'horizonal'
23*c446f2b8S猫头猫                        ? {
24*c446f2b8S猫头猫                              marginTop: 0,
25*c446f2b8S猫头猫                          }
26*c446f2b8S猫头猫                        : null,
27*c446f2b8S猫头猫                ]}>
28bf6e62f2S猫头猫                <Icon
29bf6e62f2S猫头猫                    color={'white'}
30bf6e62f2S猫头猫                    name={repeatModeConst[repeatMode].icon}
31bf6e62f2S猫头猫                    size={rpx(56)}
32bf6e62f2S猫头猫                    onPress={() => {
33bf6e62f2S猫头猫                        MusicQueue.toggleRepeatMode();
344060c00aS猫头猫                    }}
354060c00aS猫头猫                />
36bf6e62f2S猫头猫                <Icon
37bf6e62f2S猫头猫                    color={'white'}
38bf6e62f2S猫头猫                    name={'skip-previous'}
39bf6e62f2S猫头猫                    size={rpx(56)}
40bf6e62f2S猫头猫                    onPress={() => {
41bf6e62f2S猫头猫                        MusicQueue.skipToPrevious();
424060c00aS猫头猫                    }}
434060c00aS猫头猫                />
44bf6e62f2S猫头猫                <Icon
45bf6e62f2S猫头猫                    color={'white'}
46bf6e62f2S猫头猫                    name={
47bf6e62f2S猫头猫                        musicIsPaused(musicState)
48bf6e62f2S猫头猫                            ? 'play-circle-outline'
49bf6e62f2S猫头猫                            : 'pause-circle-outline'
50bf6e62f2S猫头猫                    }
51bf6e62f2S猫头猫                    size={rpx(96)}
52bf6e62f2S猫头猫                    onPress={() => {
53bf6e62f2S猫头猫                        if (musicIsPaused(musicState)) {
54bf6e62f2S猫头猫                            MusicQueue.play();
55bf6e62f2S猫头猫                        } else {
56bf6e62f2S猫头猫                            MusicQueue.pause();
57bf6e62f2S猫头猫                        }
584060c00aS猫头猫                    }}
594060c00aS猫头猫                />
60bf6e62f2S猫头猫                <Icon
61bf6e62f2S猫头猫                    color={'white'}
62bf6e62f2S猫头猫                    name={'skip-next'}
63bf6e62f2S猫头猫                    size={rpx(56)}
64bf6e62f2S猫头猫                    onPress={() => {
65bf6e62f2S猫头猫                        MusicQueue.skipToNext();
664060c00aS猫头猫                    }}
674060c00aS猫头猫                />
68bf6e62f2S猫头猫                <Icon
69bf6e62f2S猫头猫                    color={'white'}
70bf6e62f2S猫头猫                    name={'playlist-music'}
71bf6e62f2S猫头猫                    size={rpx(56)}
72bf6e62f2S猫头猫                    onPress={() => {
73bf6e62f2S猫头猫                        showPanel('PlayList');
744060c00aS猫头猫                    }}
754060c00aS猫头猫                />
76bf6e62f2S猫头猫            </View>
77bf6e62f2S猫头猫        </>
78bf6e62f2S猫头猫    );
79bf6e62f2S猫头猫}
80bf6e62f2S猫头猫
81bf6e62f2S猫头猫const style = StyleSheet.create({
82bf6e62f2S猫头猫    wrapper: {
83bf6e62f2S猫头猫        width: rpx(750),
84bf6e62f2S猫头猫        marginTop: rpx(36),
85bf6e62f2S猫头猫        height: rpx(100),
86bf6e62f2S猫头猫        flexDirection: 'row',
87bf6e62f2S猫头猫        justifyContent: 'space-around',
88bf6e62f2S猫头猫        alignItems: 'center',
89bf6e62f2S猫头猫    },
90bf6e62f2S猫头猫});
91