import React from 'react' import {Pressable, View} from 'react-native' import {AppBskyEmbedExternal} from '@atproto/api' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import {EmbedPlayerParams} from 'lib/strings/embed-player' import {useAutoplayDisabled} from 'state/preferences' import {atoms as a, useTheme} from '#/alf' import {Loader} from '#/components/Loader' import {GifView} from '../../../../../modules/expo-bluesky-gif-view' import {GifViewStateChangeEvent} from '../../../../../modules/expo-bluesky-gif-view/src/GifView.types' function PlaybackControls({ onPress, isPlaying, isLoaded, }: { onPress: () => void isPlaying: boolean isLoaded: boolean }) { const {_} = useLingui() const t = useTheme() return ( {!isLoaded ? ( ) : !isPlaying ? ( ) : undefined} ) } export function GifEmbed({ params, link, }: { params: EmbedPlayerParams link: AppBskyEmbedExternal.ViewExternal }) { const {_} = useLingui() const autoplayDisabled = useAutoplayDisabled() const playerRef = React.useRef(null) const [playerState, setPlayerState] = React.useState<{ isPlaying: boolean isLoaded: boolean }>({ isPlaying: !autoplayDisabled, isLoaded: false, }) const onPlayerStateChange = React.useCallback( (e: GifViewStateChangeEvent) => { setPlayerState(e.nativeEvent) }, [], ) const onPress = React.useCallback(() => { playerRef.current?.toggleAsync() }, []) return ( ) }