bsky-app/modules/expo-bluesky-swiss-army/src/HLSDownload/index.native.tsx
Hailey 11061b628e
[Video] Download videos (#4886)
Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
2024-08-15 11:23:48 -07:00

39 lines
1 KiB
TypeScript

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}
/>
)
}
}