import React, {memo, useEffect, useState} from 'react';
import {Keyboard, StyleSheet, View} from 'react-native';
import rpx from '@/utils/rpx';
import {CircularProgressBase} from 'react-native-circular-progress-indicator';
import {useSafeAreaInsets} from 'react-native-safe-area-context';
import {showPanel} from '../panels/usePanel';
import useColors from '@/hooks/useColors';
import IconButton from '../base/iconButton';
import TrackPlayer from '@/core/trackPlayer';
import {musicIsPaused} from '@/utils/trackUtils';
import MusicInfo from './musicInfo';
import Icon from '@/components/base/icon.tsx';
function CircularPlayBtn() {
const progress = TrackPlayer.useProgress();
const musicState = TrackPlayer.useMusicState();
const colors = useColors();
const isPaused = musicIsPaused(musicState);
return (
{
if (isPaused) {
await TrackPlayer.play();
} else {
await TrackPlayer.pause();
}
}}
/>
);
}
function MusicBar() {
const musicItem = TrackPlayer.useCurrentMusic();
const [showKeyboard, setKeyboardStatus] = useState(false);
const colors = useColors();
const safeAreaInsets = useSafeAreaInsets();
useEffect(() => {
const showSubscription = Keyboard.addListener('keyboardDidShow', () => {
setKeyboardStatus(true);
});
const hideSubscription = Keyboard.addListener('keyboardDidHide', () => {
setKeyboardStatus(false);
});
return () => {
showSubscription.remove();
hideSubscription.remove();
};
}, []);
return (
<>
{musicItem && !showKeyboard && (
{
// navigate(ROUTE_PATH.MUSIC_DETAIL);
// }}
>
{
showPanel('PlayList');
}}
color={colors.musicBarText}
style={[style.actionIcon]}
/>
)}
>
);
}
export default memo(MusicBar, () => true);
const style = StyleSheet.create({
wrapper: {
width: '100%',
height: rpx(132),
flexDirection: 'row',
alignItems: 'center',
paddingRight: rpx(24),
},
actionGroup: {
width: rpx(200),
justifyContent: 'flex-end',
flexDirection: 'row',
alignItems: 'center',
},
actionIcon: {
marginLeft: rpx(36),
},
});