import { TextStyle } from 'react-native' ; import _ from 'lodash' ; import { colorsPalette } from './colors' ; param type returns export function rnTextType ( type ? ) { let textStyle = { color : colorsPalette . grey10 , fontSize : 16 , } ; switch ( type ) { case 'header' : textStyle = { color : colorsPalette . grey10 , fontSize : 17 , fontWeight : '500' , } ; break ; case 'title' : textStyle = { color : colorsPalette . grey10 , fontSize : 15 , fontWeight : '400' , } ; break ; case 'label' : textStyle = { color : colorsPalette . grey10 , fontSize : 14 , fontWeight : '300' , } ; break ; case 'subLabel' : textStyle = { color : colorsPalette . grey30 , fontSize : 12 , fontWeight : '300' , } ; break ; default : } return textStyle ; } targetString highlightText export const getTextPartsByHighlight = ( targetString = '' , highlightText = '' ) => { if ( _ . isEmpty ( highlightText . trim ( ) ) ) { return [ targetString ] ; } const textParts = [ ] ; let highlightIndex ; do { highlightIndex = targetString . toLowerCase ( ) . indexOf ( highlightText . toLowerCase ( ) ) ; if ( highlightIndex !== - 1 ) { if ( highlightIndex > 0 ) { textParts . push ( targetString . substring ( 0 , highlightIndex ) ) ; } textParts . push ( targetString . substr ( highlightIndex , highlightText . length ) ) ; targetString = targetString . substr ( highlightIndex + highlightText . length ) ; } else { textParts . push ( targetString ) ; } } while ( highlightIndex !== - 1 ) ; return textParts ; } ; param text param length returns export function sliceText ( text = '' , length ) { return text . substr ( 0 , length ) + '...' ; }