-
Notifications
You must be signed in to change notification settings - Fork 560
/
BlurView.ios.js
67 lines (60 loc) · 1.33 KB
/
BlurView.ios.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import React, {Component} from 'react';
import PropTypes from 'prop-types';
import {
View,
requireNativeComponent,
ViewPropTypes,
StyleSheet,
} from 'react-native';
class BlurView extends Component {
setNativeProps = (nativeProps) => {
if (this._root) {
this._root.setNativeProps(nativeProps);
}
};
render() {
return (
<NativeBlurView
ref={(e) => (this._root = e)}
{...this.props}
style={StyleSheet.compose(styles.transparent, this.props.style)}
/>
);
}
}
const styles = StyleSheet.create({
transparent: {backgroundColor: 'transparent'},
});
BlurView.propTypes = {
...(ViewPropTypes || View.propTypes),
blurType: PropTypes.oneOf([
'dark',
'light',
'xlight',
'prominent',
'regular',
'extraDark',
'chromeMaterial',
'material',
'thickMaterial',
'thinMaterial',
'ultraThinMaterial',
'chromeMaterialDark',
'materialDark',
'thickMaterialDark',
'thinMaterialDark',
'ultraThinMaterialDark',
'chromeMaterialLight',
'materialLight',
'thickMaterialLight',
'thinMaterialLight',
'ultraThinMaterialLight',
]),
blurAmount: PropTypes.number,
};
BlurView.defaultProps = {
blurType: 'dark',
blurAmount: 10,
};
const NativeBlurView = requireNativeComponent('BlurView', BlurView);
module.exports = BlurView;