@eslam-elmeniawy/react-native-common-components
Version:
Common `ReactNative` components packed in library for usage in projects.
63 lines (60 loc) • 1.48 kB
JavaScript
;
// External imports.
import * as React from 'react';
import { Image, StyleSheet } from 'react-native';
// Types imports.
// Internal imports.
import styles from "./IconButton.styles.js";
import { jsx as _jsx } from "react/jsx-runtime";
const Icon = /*#__PURE__*/React.memo(props => {
const {
image,
vector,
iconName,
size,
color,
iconPercent,
noIconTint
} = props;
const _iconPercent = iconPercent ?? 60;
const _iconSize = size * _iconPercent / 100;
const _iconStyle = StyleSheet.flatten([styles.icon, {
width: _iconSize,
height: _iconSize,
tintColor: noIconTint ? undefined : 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