console-feed-modern
Version:
A React component that displays console logs from the current page, an iframe or transported across a server
33 lines • 2.93 kB
JavaScript
import * as React from 'react';
import * as Linkify from 'linkifyjs/react';
function splitMessage(message) {
const breakIndex = message.indexOf('\n');
// consider that there can be line without a break
if (breakIndex === -1) {
return message;
}
return message.substr(0, breakIndex);
}
class ErrorPanel extends React.PureComponent {
render() {
const { log } = this.props;
/* This checks for error logTypes and shortens the message in the console by wrapping
it a <details /> tag and putting the first line in a <summary /> tag and the other lines
follow after that. This creates a nice collapsible error message */
let otherErrorLines;
const msgLine = log.data.join(' ');
const firstLine = splitMessage(msgLine);
const msgArray = msgLine.split('\n');
if (msgArray.length > 1) {
otherErrorLines = msgArray.slice(1);
}
if (!otherErrorLines) {
return React.createElement(Linkify, null, log.data.join(' '));
}
return (React.createElement("details", null,
React.createElement("summary", { style: { outline: 'none', cursor: 'pointer' } }, firstLine),
React.createElement(Linkify, null, otherErrorLines.join('\n\r'))));
}
}
export default ErrorPanel;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvQ29tcG9uZW50L21lc3NhZ2UtcGFyc2Vycy9FcnJvci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUE7QUFFOUIsT0FBTyxLQUFLLE9BQU8sTUFBTSxpQkFBaUIsQ0FBQTtBQU0xQyxTQUFTLFlBQVksQ0FBQyxPQUFlO0lBQ25DLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDeEMsa0RBQWtEO0lBQ2xELElBQUksVUFBVSxLQUFLLENBQUMsQ0FBQyxFQUFFO1FBQ3JCLE9BQU8sT0FBTyxDQUFBO0tBQ2Y7SUFDRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFBO0FBQ3RDLENBQUM7QUFFRCxNQUFNLFVBQVcsU0FBUSxLQUFLLENBQUMsYUFBeUI7SUFDdEQsTUFBTTtRQUNKLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFBO1FBQzFCOzsyRUFFbUU7UUFDbkUsSUFBSSxlQUFlLENBQUE7UUFDbkIsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDbEMsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3ZDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDcEMsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN2QixlQUFlLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtTQUNwQztRQUVELElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDcEIsT0FBTyxvQkFBQyxPQUFPLFFBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQVcsQ0FBQTtTQUMvQztRQUVELE9BQU8sQ0FDTDtZQUNFLGlDQUFTLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUNuRCxTQUFTLENBQ0Y7WUFDVixvQkFBQyxPQUFPLFFBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBVyxDQUN6QyxDQUNYLENBQUE7SUFDSCxDQUFDO0NBQ0Y7QUFFRCxlQUFlLFVBQVUsQ0FBQSJ9