import React from 'react' const SearchRow = ({ description, category, location, date, query }) => { 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 (
{getHighlightedText(location, query)}
{getHighlightedText(date, query)}
{getShortDescription(description, query).map(match => {
return {getHighlightedText(match, query)}...
})}