import React, { useCallback, memo, useMemo, useEffect } from 'react' import { View, StyleSheet, TouchableOpacity } from 'react-native' import Icon from '@/components/common/Icon' import { useGetter, useDispatch } from '@/store' import { STATUS } from '@/store/modules/player' export default ({ playNextModes }) => { const playStatus = useGetter('player', 'status') const playNext = useDispatch('player', 'playNext') const playPrev = useDispatch('player', 'playPrev') // const playMusicInfo = useGetter('player', 'playMusicInfo') const pauseMusic = useDispatch('player', 'pauseMusic') const playMusic = useDispatch('player', 'playMusic') const theme = useGetter('common', 'theme') // const togglePlayMethod = useGetter('common', 'togglePlayMethod') // const setPlayNextMode = useDispatch('common', 'setPlayNextMode') // const toggleNextPlayMode = useCallback(() => { // let index = playNextModes.indexOf(togglePlayMethod) // if (++index >= playNextModes.length) index = -1 // setPlayNextMode(playNextModes[index] || '') // }, [setPlayNextMode, togglePlayMethod, playNextModes]) const btnPrev = useMemo(() => ( ), [playPrev, theme]) const togglePlay = useCallback(playStatus => { switch (playStatus) { case STATUS.playing: pauseMusic() break case STATUS.pause: case STATUS.stop: case STATUS.none: playMusic() break // default: // playMusic(playMusicInfo) // break } }, []) const btnPlay = useMemo(() => ( togglePlay(playStatus)}> ), [playStatus, theme, togglePlay]) const btnNext = useMemo(() => ( ), [playNext, theme]) return ( {/* */} {btnPrev} {btnPlay} {btnNext} ) } const styles = StyleSheet.create({ container: { flexGrow: 0, flexDirection: 'row', paddingLeft: 15, // paddingRight: 15, }, cotrolBtn: { width: 52, height: 52, justifyContent: 'center', alignItems: 'center', shadowOpacity: 1, textShadowRadius: 1, // backgroundColor: '#eee', }, })