diff --git a/embark-ui/package-lock.json b/embark-ui/package-lock.json index 96562f159..86ae75e02 100644 --- a/embark-ui/package-lock.json +++ b/embark-ui/package-lock.json @@ -3929,6 +3929,14 @@ "bser": "^2.0.0" } }, + "fbemitter": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-2.1.1.tgz", + "integrity": "sha1-Uj4U/a9SSIBbsC9i78M75wP1GGU=", + "requires": { + "fbjs": "^0.8.4" + } + }, "fbjs": { "version": "0.8.17", "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", @@ -4072,6 +4080,15 @@ "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=" }, + "flux": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/flux/-/flux-3.1.3.tgz", + "integrity": "sha1-0jvtUVp5oi2TOrU6tK2hnQWy8Io=", + "requires": { + "fbemitter": "^2.0.0", + "fbjs": "^0.8.0" + } + }, "follow-redirects": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.1.tgz", @@ -9691,6 +9708,30 @@ "react-base16-styling": "^0.5.1" } }, + "react-json-view": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/react-json-view/-/react-json-view-1.19.1.tgz", + "integrity": "sha512-u5e0XDLIs9Rj43vWkKvwL8G3JzvXSl6etuS5G42a8klMohZuYFQzSN6ri+/GiBptDqlrXPTdExJVU7x9rrlXhg==", + "requires": { + "flux": "^3.1.3", + "react-base16-styling": "^0.6.0", + "react-lifecycles-compat": "^3.0.4", + "react-textarea-autosize": "^6.1.0" + }, + "dependencies": { + "react-base16-styling": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/react-base16-styling/-/react-base16-styling-0.6.0.tgz", + "integrity": "sha1-7yFW1mz0E5aVyKFniGy2nqZgeSw=", + "requires": { + "base16": "^1.0.0", + "lodash.curry": "^4.0.1", + "lodash.flow": "^3.3.0", + "pure-color": "^1.2.0" + } + } + } + }, "react-lifecycles-compat": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", @@ -9817,6 +9858,14 @@ "prop-types": "^15.5.6" } }, + "react-textarea-autosize": { + "version": "6.1.0", + "resolved": "http://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-6.1.0.tgz", + "integrity": "sha512-F6bI1dgib6fSvG8so1HuArPUv+iVEfPliuLWusLF+gAKz0FbB4jLrWUrTAeq1afnPT2c9toEZYUdz/y1uKMy4A==", + "requires": { + "prop-types": "^15.6.0" + } + }, "react-transition-group": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.4.0.tgz", diff --git a/embark-ui/package.json b/embark-ui/package.json index cc47c7ee4..5d9563f6c 100644 --- a/embark-ui/package.json +++ b/embark-ui/package.json @@ -57,6 +57,7 @@ "react-dom": "^16.4.1", "react-fontawesome": "^1.6.1", "react-json-tree": "^0.11.0", + "react-json-view": "^1.19.1", "react-redux": "^5.0.7", "react-router-dom": "^4.3.1", "react-scroll-to-component": "^1.0.2", diff --git a/embark-ui/src/actions/index.js b/embark-ui/src/actions/index.js index 53fe2cbe9..dfd431eb5 100644 --- a/embark-ui/src/actions/index.js +++ b/embark-ui/src/actions/index.js @@ -117,7 +117,9 @@ export const commands = { { timestamp: new Date().getTime(), name: EMBARK_PROCESS_NAME, - msg: `console> ${payload.command}
${ansiToHtml(command.result)}` + msg: `console> ${payload.command}
${ansiToHtml(command.result)}`, + command: `console> ${payload.command}
`, + result: command.result } ] }); diff --git a/embark-ui/src/components/Console.js b/embark-ui/src/components/Console.js index 8179565a3..0afd4916f 100644 --- a/embark-ui/src/components/Console.js +++ b/embark-ui/src/components/Console.js @@ -5,6 +5,7 @@ import Convert from 'ansi-to-html'; import { Col, Row, Card, CardBody, CardFooter, TabContent, TabPane, Nav, NavItem, NavLink } from 'reactstrap'; import classnames from 'classnames'; import {AsyncTypeahead} from 'react-bootstrap-typeahead' +import ReactJson from 'react-json-view'; import Logs from "./Logs"; import "./Console.css"; @@ -67,8 +68,17 @@ class Console extends Component { {processLogs .filter((item) => item.name === process.name) .reverse() - .map((item, i) =>

)} + .map((item, i) => { + + if (item.result && item.result[0] === "{") { + return( + + ) + } +

+ + }) + } ))}