11import React , { Fragment } from 'react' ;
2- import { StyleSheet , Text } from 'react-native' ;
2+ import { StyleProp , StyleSheet , Text , TextStyle } from 'react-native' ;
33import { Hit as AlgoliaHit } from '@algolia/client-search' ;
44import {
55 getHighlightedParts ,
@@ -9,27 +9,28 @@ import {
99type HighlightPartProps = {
1010 children : React . ReactNode ;
1111 isHighlighted : boolean ;
12+ style : StyleProp < TextStyle > ;
1213} ;
1314
14- function HighlightPart ( { children, isHighlighted } : HighlightPartProps ) {
15- return (
16- < Text style = { isHighlighted ? styles . highlighted : styles . nonHighlighted } >
17- { children }
18- </ Text >
19- ) ;
15+ function HighlightPart ( { children, style } : HighlightPartProps ) {
16+ return < Text style = { style } > { children } </ Text > ;
2017}
2118
2219type HighlightProps < THit > = {
2320 hit : THit ;
2421 attribute : keyof THit | string [ ] ;
2522 className ?: string ;
2623 separator ?: string ;
24+ highlightedStyle ?: StyleProp < TextStyle > ;
25+ nonHighlightedStyle ?: StyleProp < TextStyle > ;
2726} ;
2827
2928export function Highlight < THit extends AlgoliaHit < Record < string , unknown > > > ( {
3029 hit,
3130 attribute,
3231 separator = ', ' ,
32+ highlightedStyle = styles . highlighted ,
33+ nonHighlightedStyle = styles . nonHighlighted ,
3334} : HighlightProps < THit > ) {
3435 const { value : attributeValue = '' } =
3536 getPropertyByPath ( hit . _highlightResult , attribute as string ) || { } ;
@@ -47,6 +48,11 @@ export function Highlight<THit extends AlgoliaHit<Record<string, unknown>>>({
4748 < HighlightPart
4849 key = { subPartIndex }
4950 isHighlighted = { subPart . isHighlighted }
51+ style = {
52+ subPart . isHighlighted
53+ ? highlightedStyle
54+ : nonHighlightedStyle
55+ }
5056 >
5157 { subPart . value }
5258 </ HighlightPart >
@@ -58,7 +64,11 @@ export function Highlight<THit extends AlgoliaHit<Record<string, unknown>>>({
5864 }
5965
6066 return (
61- < HighlightPart key = { partIndex } isHighlighted = { part . isHighlighted } >
67+ < HighlightPart
68+ key = { partIndex }
69+ isHighlighted = { part . isHighlighted }
70+ style = { part . isHighlighted ? highlightedStyle : nonHighlightedStyle }
71+ >
6272 { part . value }
6373 </ HighlightPart >
6474 ) ;
0 commit comments