@eslam-elmeniawy/react-native-common-components
Version:
Common `ReactNative` components packed in library for usage in projects.
59 lines (56 loc) • 1.49 kB
JavaScript
;
// External imports.
import * as React from 'react';
import { StyleSheet } from 'react-native';
// Types imports.
// Internal imports.
import styles from "./ImagePlaceholder.styles.js";
let Image = null;
let VectorImage = null;
try {
Image = require('react-native').Image;
} catch (error) {
console.warn('Error loading Image from react-native:', error);
Image = null;
}
try {
VectorImage = require('react-native-vector-image').default;
} catch (error) {
console.warn('Error loading `react-native-vector-image`:', error);
VectorImage = null;
}
const Placeholder = /*#__PURE__*/React.memo(props => {
const {
source,
placeholder,
vectorPlaceholder,
resizeMode,
isLoading,
isError
} = props;
if (!source || isError || isLoading) {
const _resizeMode = resizeMode ?? 'cover';
if (placeholder && Image) {
return /*#__PURE__*/React.createElement(Image, {
source: placeholder,
style: StyleSheet.flatten([styles.image, {
resizeMode: _resizeMode
}]),
resizeMode: _resizeMode
});
}
if (vectorPlaceholder && VectorImage) {
return /*#__PURE__*/React.createElement(VectorImage, {
source: vectorPlaceholder,
style: StyleSheet.flatten([styles.image, {
resizeMode: _resizeMode
}]),
resizeMode: _resizeMode
});
}
return null;
}
return null;
});
export default Placeholder;
//# sourceMappingURL=Placeholder.js.map