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, }, });