export function performSearch()

in src/components/application/details/controls/logs/utilities/search.js [45:83]


export function performSearch(lines, searchText, event) {
  const eventSearchText = event.target.value;
  if (eventSearchText && eventSearchText.length > 0) {
    if (eventSearchText !== searchText) {
      const searchRegExp = searchRegExpFn(eventSearchText);
      if (!searchRegExp) {
        return stopSearch();
      }
      const result = lines
        .map((log) => {
          let findResult = searchRegExp.exec(log.logText);
          const results = [];
          let relativeIndex = 0;
          while (findResult !== null) {
            results.push({...log, relativeIndex});
            relativeIndex += 1;
            findResult = searchRegExp.exec(log.logText);
          }
          return results;
        })
        .filter(a => a.length > 0)
        .reduce((acc, current) => {
          acc.push(...current);
          return acc;
        }, []);
      return {
        result: {
          searchResultIndex: result.length > 0 ? 0 : null,
          searchText: eventSearchText,
          searchResults: result,
        },
      };
    }
    return {
      next: true,
    };
  }
  return stopSearch();
}