@eslam-elmeniawy/react-native-common-components
Version:
Common `ReactNative` components packed in library for usage in projects.
61 lines (58 loc) • 1.45 kB
JavaScript
;
// External imports.
import * as React from 'react';
import { Image, StyleSheet } from 'react-native';
// Types imports.
// Internal imports.
import styles from "./Button.styles.js";
import ResponsiveDimensions from "../../utils/ResponsiveDimensions.js";
import { jsx as _jsx } from "react/jsx-runtime";
const Icon = /*#__PURE__*/React.memo(props => {
const {
image,
vector,
iconName,
size,
color
} = props;
const _iconSize = ResponsiveDimensions.ms(size);
const _iconStyle = StyleSheet.flatten([styles.icon, {
width: _iconSize,
height: _iconSize,
tintColor: color
}]);
if (image) {
return /*#__PURE__*/_jsx(Image, {
source: image,
style: _iconStyle,
resizeMode: "contain"
});
}
if (vector) {
try {
const VectorImage = require('react-native-vector-image').default;
return /*#__PURE__*/_jsx(VectorImage, {
source: vector,
style: _iconStyle,
resizeMode: "contain"
});
} catch (error) {
return null;
}
}
if (iconName) {
try {
const MaterialCommunityIcons = require('react-native-vector-icons/MaterialCommunityIcons').default;
return /*#__PURE__*/_jsx(MaterialCommunityIcons, {
name: iconName,
color: color,
size: _iconSize
});
} catch (error) {
return null;
}
}
return null;
});
export default Icon;
//# sourceMappingURL=Icon.js.map