import React from 'react' import {requireNativeModule} from 'expo' import {requireNativeViewManager} from 'expo-modules-core' import {GifViewProps} from './GifView.types' const NativeModule = requireNativeModule('ExpoBlueskyGifView') const NativeView: React.ComponentType< GifViewProps & {ref: React.RefObject} > = requireNativeViewManager('ExpoBlueskyGifView') export class GifView extends React.PureComponent { // TODO native types, should all be the same as those in this class private nativeRef: React.RefObject = React.createRef() constructor(props: GifViewProps | Readonly) { super(props) } static async prefetchAsync(sources: string[]): Promise { return await NativeModule.prefetchAsync(sources) } async playAsync(): Promise { await this.nativeRef.current.playAsync() } async pauseAsync(): Promise { await this.nativeRef.current.pauseAsync() } async toggleAsync(): Promise { await this.nativeRef.current.toggleAsync() } render() { return } }