import React from 'react'; import { StyleSheet, TextStyle } from 'react-native'; import { color, space, typography } from 'styled-system'; import { usePropsConfig } from '../../../theme'; import styled from 'styled-components'; import AntDesign from 'react-native-vector-icons/AntDesign'; import Entypo from 'react-native-vector-icons/Entypo'; import EvilIcons from 'react-native-vector-icons/EvilIcons'; import Feather from 'react-native-vector-icons/Feather'; import FontAwesome from 'react-native-vector-icons/FontAwesome'; import FontAwesome5 from 'react-native-vector-icons/FontAwesome5'; import Foundation from 'react-native-vector-icons/Foundation'; import Ionicons from 'react-native-vector-icons/Ionicons'; import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons'; import MaterialIcons from 'react-native-vector-icons/MaterialIcons'; import Octicons from 'react-native-vector-icons/Octicons'; import SimpleLineIcons from 'react-native-vector-icons/SimpleLineIcons'; import Zocial from 'react-native-vector-icons/Zocial'; import type { IIconProps } from './props'; import { SVGIcon } from './SVGIcon'; import { Path } from 'react-native-svg'; const Icon = (iconProps: IIconProps) => { const { name, type, size, style, ...props } = iconProps; const newProps = usePropsConfig('Icon', { size }); if (!name) { return ; } const flattenedIconStyle: TextStyle = StyleSheet.flatten([ { fontSize: parseInt(newProps.dimension || newProps.size, 10) }, style, ]); switch (type) { case 'AntDesign': return ; case 'Entypo': return ; case 'EvilIcons': return ; case 'Feather': return ; case 'FontAwesome': return ; case 'FontAwesome5': return ; case 'Foundation': return ; case 'Ionicons': return ; case 'MaterialCommunityIcons': return ( ); case 'Octicons': return ; case 'SimpleLineIcons': return ( ); case 'Zocial': return ; default: return ( ); } }; const styledIcon = styled(Icon)(color, space, typography); export default styledIcon; export { Path }; export { IIconProps, IconType } from './props'; export { createIcon } from './createIcon';