From 830c4e9b770d49edf35ff78e62bc428544844120 Mon Sep 17 00:00:00 2001 From: Tharaka Wijebandara Date: Fri, 8 Sep 2017 06:44:22 +0530 Subject: [PATCH 1/9] Implement click-to-open for babel syntax errors in build error overlay --- .../src/containers/CompileErrorContainer.js | 24 ++++++++++- .../src/utils/parseCompileError.js | 42 +++++++++++++++++++ 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 packages/react-error-overlay/src/utils/parseCompileError.js diff --git a/packages/react-error-overlay/src/containers/CompileErrorContainer.js b/packages/react-error-overlay/src/containers/CompileErrorContainer.js index 5d491a9d47f..2c70147bdef 100644 --- a/packages/react-error-overlay/src/containers/CompileErrorContainer.js +++ b/packages/react-error-overlay/src/containers/CompileErrorContainer.js @@ -12,18 +12,40 @@ import Footer from '../components/Footer'; import Header from '../components/Header'; import CodeBlock from '../components/CodeBlock'; import generateAnsiHTML from '../utils/generateAnsiHTML'; +import parseCompileError from '../utils/parseCompileError'; +import type { ErrorLocation } from '../utils/parseCompileError'; + +const codeAnchorStyle = { + cursor: 'pointer', +}; type Props = {| error: string, |}; class CompileErrorContainer extends PureComponent { + openInEditor(errorLoc: ErrorLocation): void { + const { filePath, lineNumber } = errorLoc; + fetch( + `/__open-stack-frame-in-editor?fileName=` + + window.encodeURIComponent(filePath) + + '&lineNumber=' + + window.encodeURIComponent(lineNumber || 1) + ).then(() => {}, () => {}); + } + render() { const { error } = this.props; + const errLoc = parseCompileError(error); return (
- + this.openInEditor(errLoc) : null} + style={errLoc ? codeAnchorStyle : null} + > + +