mirror of
https://github.com/status-im/react-native-transparent-video.git
synced 2025-02-03 10:23:53 +00:00
37 lines
924 B
TypeScript
37 lines
924 B
TypeScript
import React from 'react';
|
|
import { requireNativeComponent, ViewStyle } from 'react-native';
|
|
// @ts-ignore
|
|
import resolveAssetSource from 'react-native/Libraries/Image/resolveAssetSource';
|
|
|
|
type TransparentVideoProps = {
|
|
style: ViewStyle;
|
|
source?: any;
|
|
};
|
|
|
|
const ComponentName = 'TransparentVideoView';
|
|
|
|
const TransparentVideoView = requireNativeComponent(ComponentName);
|
|
|
|
class TransparentVideo extends React.PureComponent<TransparentVideoProps> {
|
|
render() {
|
|
const source = resolveAssetSource(this.props.source) || {};
|
|
let uri = source.uri || '';
|
|
if (uri && uri.match(/^\//)) {
|
|
uri = `file://${uri}`;
|
|
}
|
|
|
|
const nativeProps = Object.assign({}, this.props);
|
|
Object.assign(nativeProps, {
|
|
style: nativeProps.style,
|
|
src: {
|
|
uri,
|
|
type: source.type || '',
|
|
},
|
|
});
|
|
|
|
return <TransparentVideoView {...nativeProps} />;
|
|
}
|
|
}
|
|
|
|
export default TransparentVideo;
|