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