Skip to content

Commit 0f076f2

Browse files
committed
Updated JavaScript code to support the defaultSource prop
1 parent 90e1806 commit 0f076f2

File tree

4 files changed

+62
-22
lines changed

4 files changed

+62
-22
lines changed

index.js

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1 @@
1-
import PropTypes from 'prop-types'
2-
import { requireNativeComponent, Image, Platform } from 'react-native'
3-
4-
var iface = {
5-
name: 'FirebaseImage',
6-
propTypes: {
7-
...Image.propTypes,
8-
path: PropTypes.string,
9-
timestamp: PropTypes.number,
10-
resizeMode: PropTypes.oneOf(['cover', 'contain', 'stretch']),
11-
},
12-
}
13-
14-
const ImageView = requireNativeComponent('RCTFirebaseImageView', iface)
15-
let PhotoView = null
16-
//PhotoView is supported only on android
17-
if (Platform.OS === 'android') {
18-
PhotoView = requireNativeComponent('RCTFirebasePhotoView', iface)
19-
} else {
20-
PhotoView = ImageView
21-
}
22-
module.exports = { ImageView, PhotoView }
1+
export * from './src/index';

src/index.android.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
// On Android, both Image and Photo view are supported,
2+
// and defaultSource is converted to an uri that the
3+
// native side can interpret
4+
import React, { Component } from 'react'
5+
import { requireNativeComponent, Image, Platform } from 'react-native'
6+
import iface from './interface'
7+
8+
const RCTFirebaseImageView = requireNativeComponent(
9+
'RCTFirebaseImageView',
10+
iface
11+
)
12+
const RCTFirebasePhotoView = requireNativeComponent(
13+
'RCTFirebasePhotoView',
14+
iface
15+
)
16+
17+
class ImageView extends Component {
18+
render() {
19+
let { defaultSource, ...otherProps } = this.props
20+
defaultSource = defaultSource
21+
? Image.resolveAssetSource(defaultSource).uri
22+
: undefined
23+
return (
24+
<RCTFirebaseImageView {...otherProps} defaultSource={defaultSource} />
25+
)
26+
}
27+
}
28+
29+
class PhotoView extends Component {
30+
render() {
31+
let { defaultSource, ...otherProps } = this.props
32+
defaultSource = defaultSource
33+
? Image.resolveAssetSource(defaultSource).uri
34+
: undefined
35+
return (
36+
<RCTFirebasePhotoView {...otherProps} defaultSource={defaultSource} />
37+
)
38+
}
39+
}
40+
41+
module.exports = { ImageView, PhotoView }

src/index.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { requireNativeComponent } from 'react-native'
2+
import iface from './interface'
3+
4+
const ImageView = requireNativeComponent('RCTFirebaseImageView', iface)
5+
const PhotoView = ImageView //PhotoView is supported only on android
6+
7+
module.exports = { ImageView, PhotoView }

src/interface.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { Image } from 'react-native'
2+
import PropTypes from 'prop-types'
3+
4+
module.exports = {
5+
name: 'FirebaseImage',
6+
propTypes: {
7+
...Image.propTypes,
8+
path: PropTypes.string,
9+
timestamp: PropTypes.number,
10+
resizeMode: PropTypes.oneOf(['cover', 'contain', 'stretch']),
11+
defaultSource: PropTypes.number
12+
}
13+
}

0 commit comments

Comments
 (0)