Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F32768865
error-boundary.react.js
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
error-boundary.react.js
View Options
// @flow
import
*
as
React
from
'react'
;
import
type
{
ErrorInfo
,
ErrorData
}
from
'lib/types/report-types.js'
;
import
Crash
from
'./crash.react.js'
;
let
instance
:
?
ErrorBoundary
=
null
;
const
defaultHandler
=
global
.
ErrorUtils
.
getGlobalHandler
();
global
.
ErrorUtils
.
setGlobalHandler
(
error
=>
{
defaultHandler
(
error
);
if
(
instance
)
{
instance
.
reportError
(
error
);
}
});
type
Props
=
{
+
children
:
React
.
Node
,
};
type
State
=
{
+
errorData
:
$ReadOnlyArray
<
ErrorData
>
,
};
class
ErrorBoundary
extends
React
.
PureComponent
<
Props
,
State
>
{
state
:
State
=
{
errorData
:
[],
};
componentDidMount
()
{
instance
=
this
;
}
componentWillUnmount
()
{
instance
=
null
;
}
componentDidCatch
(
error
:
Error
,
info
:
ErrorInfo
)
{
this
.
setState
(
prevState
=>
({
errorData
:
[...
prevState
.
errorData
,
{
error
,
info
}],
}));
}
reportError
(
error
:
Error
)
{
this
.
setState
(
prevState
=>
({
errorData
:
[...
prevState
.
errorData
,
{
error
}],
}));
}
render
()
:
React
.
Node
{
if
(
this
.
state
.
errorData
.
length
>
0
)
{
return
<
Crash
errorData
=
{
this
.
state
.
errorData
}
/>
;
}
return
this
.
props
.
children
;
}
}
export
default
ErrorBoundary
;
File Metadata
Details
Attached
Mime Type
text/x-java
Expires
Fri, Jan 9, 1:05 PM (21 h, 13 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5867903
Default Alt Text
error-boundary.react.js (1 KB)
Attached To
Mode
rCOMM Comm
Attached
Detach File
Event Timeline
Log In to Comment