import React from 'react';
import { View, Text, StyleSheet, TouchableOpacity } from 'react-native';
import { SafeAreaView } from 'react-native-safe-area-context';
import Svg, { Path } from 'react-native-svg';
import { Starfield } from '../components/Starfield';
import { ZenCenter } from '../components/ZenCenter';
import { MarqueeText } from '../components/MarqueeText';
import { PlayerControls } from '../components/PlayerControls';
import { theme } from '../theme';
import { Track, RepeatMode } from '../types';
interface PlayerScreenProps {
currentTrack: Track | null;
trackCount: number;
isPlaying: boolean;
isShuffle: boolean;
repeatMode: RepeatMode;
position: number;
duration: number;
onPlayPause: () => void;
onNext: () => void;
onPrev: () => void;
onShuffle: () => void;
onRepeat: () => void;
onSeek: (position: number) => void;
onOpenPlaylist: () => void;
}
const ListIcon = () => (
);
export const PlayerScreen: React.FC = ({
currentTrack,
trackCount,
isPlaying,
isShuffle,
repeatMode,
position,
duration,
onPlayPause,
onNext,
onPrev,
onShuffle,
onRepeat,
onSeek,
onOpenPlaylist,
}) => {
return (
{/* Starfield background */}
{/* Header */}
观空禅音
{trackCount} 首
{/* Zen center */}
{/* Track info */}
{currentTrack?.artist || '—'}
{/* Spacer */}
{/* Player controls */}
{/* Playlist button */}
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: theme.colors.background,
},
safeContainer: {
flex: 1,
},
header: {
flexDirection: 'row',
justifyContent: 'space-between',
alignItems: 'center',
paddingHorizontal: theme.spacing.md,
paddingVertical: theme.spacing.sm,
},
headerTitle: {
fontSize: 20,
fontWeight: '600',
letterSpacing: 0.06,
color: theme.colors.text,
},
headerCount: {
fontSize: 13,
color: theme.colors.textSecondary,
},
zenCenterContainer: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
},
trackInfo: {
alignItems: 'center',
paddingHorizontal: theme.spacing.md,
},
trackTitleWrap: {
width: '100%',
},
trackTitle: {
fontSize: 17,
fontWeight: '600',
color: theme.colors.text,
marginBottom: 3,
},
trackArtist: {
fontSize: 13,
color: theme.colors.textSecondary,
},
spacer: {
height: theme.spacing.md,
},
playlistButtonContainer: {
alignItems: 'center',
paddingBottom: theme.spacing.sm,
},
playlistButton: {
padding: theme.spacing.sm,
},
});