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