import { parseJsonIfNeeded } from "../functionUtils"; import * as R from "ramda"; const setTrackType = R.curry( ( type: QuickBrickPlayer.TrackType, track: Omit ) => R.set(R.lensProp("trackType"), type)(track) ); export const parseLanguageTracks = ( nativeEvent: | QuickBrickPlayer.OnVideoLoadEvent["nativeEvent"] | QuickBrickPlayer.OnTracksChangeEvent["nativeEvent"] ): QuickBrickPlayer.TracksState => { const textTracks = R.compose( R.uniq, R.map(setTrackType("text")), parseJsonIfNeeded )(nativeEvent?.textTracks || []); const audioTracks = R.compose( R.uniq, R.map(setTrackType("audio")), parseJsonIfNeeded )(nativeEvent?.audioTracks || []); return { textTracks, audioTracks, // we are ok with it being undefined // @ts-ignore audioTrackId: audioTracks?.[nativeEvent?.selectedAudioTrack]?.id, // we are ok with it being undefined // @ts-ignore textTrackId: textTracks?.[nativeEvent?.selectedTextTrack]?.id, }; };