|
|
@@ -5,7 +5,7 @@ import classnames from 'classnames';
|
|
|
|
|
|
import { LogRowModel, LogLabelStatsModel, LogsParser, calculateFieldStats, getParser } from 'app/core/logs_model';
|
|
|
import { LogLabels } from './LogLabels';
|
|
|
-import { findHighlightChunksInText, hasAnsiCodes } from 'app/core/utils/text';
|
|
|
+import { findHighlightChunksInText } from 'app/core/utils/text';
|
|
|
import { LogLabelStats } from './LogLabelStats';
|
|
|
import { LogMessageAnsi } from './LogMessageAnsi';
|
|
|
|
|
|
@@ -130,13 +130,13 @@ export class LogRow extends PureComponent<Props, State> {
|
|
|
parsedFieldHighlights,
|
|
|
showFieldStats,
|
|
|
} = this.state;
|
|
|
+ const { entry, hasAnsi, raw } = row;
|
|
|
const previewHighlights = highlighterExpressions && !_.isEqual(highlighterExpressions, row.searchWords);
|
|
|
const highlights = previewHighlights ? highlighterExpressions : row.searchWords;
|
|
|
- const needsHighlighter = highlights && highlights.length > 0;
|
|
|
+ const needsHighlighter = highlights && highlights.length > 0 && highlights[0].length > 0;
|
|
|
const highlightClassName = classnames('logs-row__match-highlight', {
|
|
|
'logs-row__match-highlight--preview': previewHighlights,
|
|
|
});
|
|
|
- const containsAnsiCodes = hasAnsiCodes(row.entry);
|
|
|
|
|
|
return (
|
|
|
<div className="logs-row">
|
|
|
@@ -160,25 +160,25 @@ export class LogRow extends PureComponent<Props, State> {
|
|
|
</div>
|
|
|
)}
|
|
|
<div className="logs-row__message" onMouseEnter={this.onMouseOverMessage} onMouseLeave={this.onMouseOutMessage}>
|
|
|
- {containsAnsiCodes && <LogMessageAnsi value={row.entry} />}
|
|
|
- {!containsAnsiCodes && parsed && (
|
|
|
+ {parsed && (
|
|
|
<Highlighter
|
|
|
autoEscape
|
|
|
highlightTag={FieldHighlight(this.onClickHighlight)}
|
|
|
- textToHighlight={row.entry}
|
|
|
+ textToHighlight={entry}
|
|
|
searchWords={parsedFieldHighlights}
|
|
|
highlightClassName="logs-row__field-highlight"
|
|
|
/>
|
|
|
)}
|
|
|
- {!containsAnsiCodes && !parsed && needsHighlighter && (
|
|
|
+ {!parsed && needsHighlighter && (
|
|
|
<Highlighter
|
|
|
- textToHighlight={row.entry}
|
|
|
+ textToHighlight={entry}
|
|
|
searchWords={highlights}
|
|
|
findChunks={findHighlightChunksInText}
|
|
|
highlightClassName={highlightClassName}
|
|
|
/>
|
|
|
)}
|
|
|
- {!containsAnsiCodes && !parsed && !needsHighlighter && row.entry}
|
|
|
+ {hasAnsi && !parsed && !needsHighlighter && <LogMessageAnsi value={raw} />}
|
|
|
+ {!hasAnsi && !parsed && !needsHighlighter && entry}
|
|
|
{showFieldStats && (
|
|
|
<div className="logs-row__stats">
|
|
|
<LogLabelStats
|