diff options
Diffstat (limited to 'modules/expo-bluesky-swiss-army/src/HLSDownload/index.native.tsx')
-rw-r--r-- | modules/expo-bluesky-swiss-army/src/HLSDownload/index.native.tsx | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/modules/expo-bluesky-swiss-army/src/HLSDownload/index.native.tsx b/modules/expo-bluesky-swiss-army/src/HLSDownload/index.native.tsx new file mode 100644 index 000000000..92f26192e --- /dev/null +++ b/modules/expo-bluesky-swiss-army/src/HLSDownload/index.native.tsx @@ -0,0 +1,39 @@ +import React from 'react' +import {StyleProp, ViewStyle} from 'react-native' +import {requireNativeModule, requireNativeViewManager} from 'expo-modules-core' + +import {HLSDownloadViewProps} from './types' + +const NativeModule = requireNativeModule('ExpoHLSDownload') +const NativeView: React.ComponentType< + HLSDownloadViewProps & { + ref: React.RefObject<any> + style: StyleProp<ViewStyle> + } +> = requireNativeViewManager('ExpoHLSDownload') + +export default class HLSDownloadView extends React.PureComponent<HLSDownloadViewProps> { + private nativeRef: React.RefObject<any> = React.createRef() + + constructor(props: HLSDownloadViewProps) { + super(props) + } + + static isAvailable(): boolean { + return NativeModule.isAvailable() + } + + async startDownloadAsync(sourceUrl: string): Promise<void> { + return await this.nativeRef.current.startDownloadAsync(sourceUrl) + } + + render() { + return ( + <NativeView + ref={this.nativeRef} + style={{height: 0, width: 0}} + {...this.props} + /> + ) + } +} |