@tra-tech/react-native-kitra
Version:
UI kit for React Native
83 lines (81 loc) • 2.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.registerCustomIconType = exports.opacity = exports.getIconType = exports.getIconProperties = void 0;
/* eslint-disable no-bitwise */
function hexToRgbA(hex, percentage) {
let c;
if (/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)) {
c = hex.substring(1).split('');
if (c.length === 3) {
c = [c[0], c[0], c[1], c[1], c[2], c[2]];
}
c = `0x${c.join('')}`;
// @ts-ignore
return `rgba(${[c >> 16 & 255, c >> 8 & 255, c & 255].join(',')},${percentage / 100})`;
}
throw new Error('Bad Hex');
}
const opacity = (color, percentage) => hexToRgbA(color, percentage);
exports.opacity = opacity;
const customIcons = {};
const registerCustomIconType = (id, customIcon) => {
customIcons[id] = customIcon;
};
exports.registerCustomIconType = registerCustomIconType;
const getIconType = type => {
switch (type) {
case 'zocial':
return require('react-native-vector-icons/Zocial').default;
case 'octicon':
return require('react-native-vector-icons/Octicons').default;
case 'material':
return require('react-native-vector-icons/MaterialIcons').default;
case 'material-community':
return require('react-native-vector-icons/MaterialCommunityIcons').default;
case 'ionicon':
return require('react-native-vector-icons/Ionicons').default;
case 'foundation':
return require('react-native-vector-icons/Foundation').default;
case 'evilicon':
return require('react-native-vector-icons/EvilIcons').default;
case 'entypo':
return require('react-native-vector-icons/Entypo').default;
case 'font-awesome':
return require('react-native-vector-icons/FontAwesome').default;
case 'font-awesome-5':
return require('react-native-vector-icons/FontAwesome5').default;
case 'simple-line-icon':
return require('react-native-vector-icons/SimpleLineIcons').default;
case 'feather':
return require('react-native-vector-icons/Feather').default;
case 'antdesign':
case 'ant-design':
return require('react-native-vector-icons/AntDesign').default;
case 'fontisto':
return require('react-native-vector-icons/Fontisto').default;
default:
if (Object.prototype.hasOwnProperty.call(customIcons, type)) {
return customIcons[type];
}
return require('react-native-vector-icons/MaterialIcons').default;
}
};
exports.getIconType = getIconType;
const getIconProperties = node => {
const {
type,
name,
size,
color
} = node.props;
return {
type,
name,
size,
color
};
};
exports.getIconProperties = getIconProperties;
//# sourceMappingURL=utilities.js.map