import { Ionicons } from '@expo/vector-icons'; import { View, Pressable } from 'react-native'; import { useTheme } from '~/utils/themeContext'; import { useAudio } from '~/contexts/AudioContext'; import { usePlayerStore } from '~/stores/playerStore'; import type { RepeatMode, ShuffleMode } from '~/types'; interface TransportControlsProps { size?: 'small' | 'large'; } function getRepeatIcon(mode: RepeatMode): keyof typeof Ionicons.glyphMap { if (mode === 'one') return 'repeat'; return 'repeat'; } export function TransportControls({ size = 'large' }: TransportControlsProps) { const { colors } = useTheme(); const { play, pause, playNext, playPrevious } = useAudio(); const isPlaying = usePlayerStore((s) => s.isPlaying); const repeatMode = usePlayerStore((s) => s.repeatMode); const shuffleMode = usePlayerStore((s) => s.shuffleMode); const toggleRepeat = usePlayerStore((s) => s.toggleRepeat); const toggleShuffle = usePlayerStore((s) => s.toggleShuffle); const iconSize = size === 'large' ? 36 : 24; const playSize = size === 'large' ? 56 : 32; return ( {size === 'large' && ( )} {size === 'large' && ( {repeatMode === 'one' && ( )} )} ); }