import React from 'react' const SearchRow = ({ query, eventObj, onSearchRowClick }) => { const { description, location, date } = eventObj function getHighlightedText (text, highlight) { // Split text on highlight term, include term itself into parts, ignore case const parts = text.split(new RegExp(`(${highlight})`, 'gi')) return { parts.map(part => part.toLowerCase() === highlight.toLowerCase() ? {part} : part) } } function getShortDescription (text, searchQuery) { var regexp = new RegExp(`(([^ ]* ){0,6}[a-zA-Z]*${searchQuery.toLowerCase()}[a-zA-Z]*( [^ ]*){0,5})`, 'gm') let parts = text.toLowerCase().match(regexp) for (var x = 0; x < (parts ? parts.length : 0); x++) { parts[x] = '...' + parts[x] } const firstLine = [text.match('(([^ ]* ){0,10})', 'm')[0]] return parts || firstLine } return (
onSearchRowClick([eventObj])}>
event

{getHighlightedText(date, query)}

location_on

{getHighlightedText(location, query)}

{getShortDescription(description, query).map(match => { return {getHighlightedText(match, query)}...
})}

) } export default SearchRow