console-feed-modern
Version:
A React component that displays console logs from the current page, an iframe or transported across a server
58 lines • 7.66 kB
JavaScript
import { withTheme } from 'emotion-theming';
import * as React from 'react';
import { DOMInspector, Inspector, ObjectLabel, ObjectName, ObjectRootLabel, ObjectValue, ObjectPreview } from 'react-inspector';
import { Constructor, HTML, Root, Table } from './elements';
const CustomObjectLabel = ({ name, data, isNonenumerable = false }) => (React.createElement("span", null,
typeof name === 'string' ? (React.createElement(ObjectName, { name: name, dimmed: isNonenumerable })) : (React.createElement(ObjectPreview, { data: name })),
React.createElement("span", null, ": "),
React.createElement(ObjectValue, { object: data })));
class CustomInspector extends React.PureComponent {
render() {
const { data, theme } = this.props;
const { styles, method } = theme;
const dom = data instanceof HTMLElement;
const table = method === 'table';
return (React.createElement(Root, { "data-type": table ? 'table' : dom ? 'html' : 'object' }, table ? (React.createElement(Table, null,
React.createElement(Inspector, Object.assign({}, this.props, { theme: styles, table: true })),
React.createElement(Inspector, Object.assign({}, this.props, { theme: styles })))) : dom ? (React.createElement(HTML, null,
React.createElement(DOMInspector, Object.assign({}, this.props, { theme: styles })))) : (React.createElement(Inspector, Object.assign({}, this.props, { theme: styles, nodeRenderer: this.nodeRenderer.bind(this) })))));
}
getCustomNode(data) {
const { styles } = this.props.theme;
const constructor = data && data.constructor ? data.constructor.name : null;
if (constructor === 'Function')
return (React.createElement("span", { style: { fontStyle: 'italic' } },
React.createElement(ObjectPreview, { data: data }),
` {`,
React.createElement("span", { style: { color: 'rgb(181, 181, 181)' } }, data.body),
`}`));
if (constructor === 'Promise')
return (React.createElement("span", { style: { fontStyle: 'italic' } },
"Promise ",
`{`,
React.createElement("span", { style: { opacity: 0.6 } }, `<pending>`),
`}`));
if (data instanceof HTMLElement)
return (React.createElement(HTML, null,
React.createElement(DOMInspector, { data: data, theme: styles })));
return null;
}
nodeRenderer(props) {
let { depth, name, data, isNonenumerable } = props;
// Root
if (depth === 0) {
const customNode = this.getCustomNode(data);
return customNode || React.createElement(ObjectRootLabel, { name: name, data: data });
}
if (name === 'constructor')
return (React.createElement(Constructor, null,
React.createElement(ObjectLabel, { name: "<constructor>", data: data.name, isNonenumerable: isNonenumerable })));
const customNode = this.getCustomNode(data);
return customNode ? (React.createElement(Root, null,
React.createElement(ObjectName, { name: name }),
React.createElement("span", null, ": "),
customNode)) : (React.createElement(CustomObjectLabel, { name: name, data: data, isNonenumerable: isNonenumerable }));
}
}
export default withTheme(CustomInspector);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvQ29tcG9uZW50L3JlYWN0LWluc3BlY3Rvci9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFBO0FBQzlCLE9BQU8sRUFDTCxZQUFZLEVBQ1osU0FBUyxFQUNULFdBQVcsRUFDWCxVQUFVLEVBQ1YsZUFBZSxFQUNmLFdBQVcsRUFDWCxhQUFhLEVBQ2QsTUFBTSxpQkFBaUIsQ0FBQTtBQUd4QixPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBTzNELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsZUFBZSxHQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUNyRTtJQUNHLE9BQU8sSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FDMUIsb0JBQUMsVUFBVSxJQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGVBQWUsR0FBSSxDQUNwRCxDQUFDLENBQUMsQ0FBQyxDQUNGLG9CQUFDLGFBQWEsSUFBQyxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQzlCO0lBQ0QsdUNBQWU7SUFDZixvQkFBQyxXQUFXLElBQUMsTUFBTSxFQUFFLElBQUksR0FBSSxDQUN4QixDQUNSLENBQUE7QUFFRCxNQUFNLGVBQWdCLFNBQVEsS0FBSyxDQUFDLGFBQXlCO0lBQzNELE1BQU07UUFDSixNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUE7UUFDbEMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUE7UUFFaEMsTUFBTSxHQUFHLEdBQUcs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