@@ -18,11 +18,10 @@ export default class RedBox extends Component {
18
18
useLines : true ,
19
19
useColumns : true
20
20
}
21
- render ( ) {
22
- const { error, filename, editorScheme, useLines, useColumns} = this . props
23
- const { redbox, message, stack, frame, file, linkToFile} = assign ( { } , style , this . props . style )
24
-
25
- const frames = ErrorStackParser . parse ( error ) . map ( ( f , index ) => {
21
+ renderFrames ( frames ) {
22
+ const { filename, editorScheme, useLines, useColumns} = this . props
23
+ const { frame, file, linkToFile} = assign ( { } , style , this . props . style )
24
+ return frames . map ( ( f , index ) => {
26
25
let text
27
26
let url
28
27
@@ -45,6 +44,29 @@ export default class RedBox extends Component {
45
44
</ div >
46
45
)
47
46
} )
47
+ }
48
+ render ( ) {
49
+ const { error} = this . props
50
+ const { redbox, message, stack, frame} = assign ( { } , style , this . props . style )
51
+
52
+ let frames
53
+ let parseError
54
+ try {
55
+ frames = ErrorStackParser . parse ( error )
56
+ } catch ( e ) {
57
+ parseError = new Error ( 'Failed to parse stack trace. Stack trace information unavailable.' )
58
+ }
59
+
60
+ if ( parseError ) {
61
+ frames = (
62
+ < div style = { frame } key = { 0 } >
63
+ < div > { parseError . message } </ div >
64
+ </ div >
65
+ )
66
+ } else {
67
+ frames = this . renderFrames ( frames )
68
+ }
69
+
48
70
return (
49
71
< div style = { redbox } >
50
72
< div style = { message } > { error . name } : { error . message } </ div >
0 commit comments