UNPKG

@eslam-elmeniawy/react-native-common-components

Version:

Common `ReactNative` components packed in library for usage in projects.

63 lines (60 loc) 1.48 kB
"use strict"; // 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