import { Ionicons } from '@expo/vector-icons'; import React, { useState } from 'react'; import { ScrollView, StyleSheet, Text, View } from 'react-native'; import { VideoPlayer } from '../Player.types'; import { Focussable } from './components/Focussable'; type TracksViewProps = { player: VideoPlayer; onClose: () => void; }; export const TracksView = ({ player, onClose: close }: TracksViewProps) => { const [audioSelected, setAudioSelected] = useState(player.selectedAudioTrackId); const [textSelected, setTextSelected] = useState(player.selectedTextTrackId); return ( Audio {player.audioTracks.map((track, index) => ( { player.selectedAudioTrackId = track.id; setAudioSelected(track.id); }} style={styles.track} > {track.id === audioSelected && } {track.name} ))} Sous-titre { player.unselectTextTrack(); setTextSelected(null); }} style={styles.track} > {!textSelected && } Aucun {player.textTracks.map((track, index) => ( { player.selectedTextTrackId = track.id; setTextSelected(track.id); }} style={styles.track} > {track.id === textSelected && } {track.name} ))} Fermer ); }; const styles = StyleSheet.create({ background: { position: 'absolute', flex: 1, width: '100%', height: '100%', justifyContent: 'flex-end', alignItems: 'center' }, container: { backgroundColor: 'rgba(0,0,0,0.7)', maxWidth: 500, minHeight: 212, justifyContent: 'flex-start', alignItems: 'flex-end' }, parts: { padding: 20, flex: 1, width: '100%', height: '100%', flexDirection: 'row', justifyContent: 'flex-start', alignItems: 'center', gap: 20 }, part: { flex: 1, width: '100%', height: '100%', justifyContent: 'flex-start', gap: 15 }, tracks: { gap: 20 }, track: { flexDirection: 'row', alignItems: 'center', gap: 10, height: 20 }, separation: { color: 'white', paddingBottom: 5, borderBottomColor: 'white', borderBottomWidth: 2 } });