docs better error display for live editor and JSX compiler

This commit is contained in:
Cheng Lou
2014-01-01 19:41:08 -05:00
committed by Vjeux
parent 8dc36e396b
commit 8d37f7d373
2 changed files with 32 additions and 7 deletions

View File

@@ -466,6 +466,12 @@ section.black content {
@include code-typography;
}
}
.playgroundError {
// The compiler view kills padding in order to render the CodeMirror code
// more nicely. For the error view, put a padding back
padding: 15px 20px;
}
}
/* Button */
@@ -560,7 +566,7 @@ figure {
margin-top: 60px;
}
/* Code Mirror */
/* CodeMirror */
div.CodeMirror pre, div.CodeMirror-linenumber, code {
@include code-typography;
@@ -622,6 +628,11 @@ p code {
width: $columnWidth;
}
.playgroundError {
color: darken($primary, 5%);
font-size: 15px;
}
.MarkdownEditor textarea {
width: 100%;
height: 100px
@@ -636,7 +647,7 @@ p code {
padding-left: 9px;
}
/* Codemirror doesn't support <jsx> syntax. Instead of highlighting it
/* CodeMirror doesn't support <jsx> syntax. Instead of highlighting it
as error, just ignore it */
.highlight .javascript .err {
background-color: transparent;

View File

@@ -53,7 +53,20 @@ var CodeMirrorEditor = React.createClass({
}
});
var selfCleaningTimeout = {
componentDidUpdate: function() {
clearTimeout(this.timeoutID);
},
setTimeout: function() {
clearTimeout(this.timeoutID);
this.timeoutID = setTimeout.apply(null, arguments);
}
};
var ReactPlayground = React.createClass({
mixins: [selfCleaningTimeout],
MODES: {XJS: 'XJS', JS: 'JS'}, //keyMirror({XJS: true, JS: true}),
propTypes: {
@@ -137,11 +150,12 @@ var ReactPlayground = React.createClass({
eval(compiledCode);
}
} catch (e) {
React.renderComponent(
<div content={e.toString()} className="playgroundError" />,
mountNode
);
this.setTimeout(function() {
React.renderComponent(
<div className="playgroundError">{e.toString()}</div>,
mountNode
);
}, 500);
}
}
});