import {createRef, PureComponent} from 'react' import {type ComponentType, type RefObject} from 'react' import {requireNativeModule} from 'expo' import {requireNativeViewManager} from 'expo-modules-core' import {type GifViewProps} from './GifView.types' const NativeModule = requireNativeModule('ExpoBlueskyGifView') const NativeView: ComponentType}> = requireNativeViewManager('ExpoBlueskyGifView') export class GifView extends PureComponent { // TODO native types, should all be the same as those in this class private nativeRef: RefObject = 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 } }