Skip to content

Commit 1346093

Browse files
author
Ives van Hoorne
committed
Show original error for transformed errors
1 parent 6cb3a26 commit 1346093

File tree

3 files changed

+46
-0
lines changed

3 files changed

+46
-0
lines changed

src/sandbox/react-error-overlay/components/overlay.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import {
1414
overlayStyle,
1515
headerStyle,
1616
messageHeaderStyle,
17+
originalHeaderStyle,
18+
originalMessageHeaderStyle,
1719
} from '../styles';
1820
import { createClose } from './close';
1921
import { createFrames } from './frames';
@@ -92,6 +94,28 @@ function createOverlay(
9294
container.appendChild(header);
9395
container.appendChild(messageHeader);
9496

97+
// If the error has been transformed
98+
if (error.originalName || error.originalMessage) {
99+
const originalErrorContainer = document.createElement('div');
100+
const errorHeader = document.createElement('div');
101+
applyStyles(errorHeader, originalHeaderStyle);
102+
errorHeader.appendChild(document.createTextNode('Original error:'));
103+
originalErrorContainer.appendChild(errorHeader);
104+
105+
// Create header
106+
const originalMessageHeader = document.createElement('div');
107+
applyStyles(originalMessageHeader, originalMessageHeaderStyle);
108+
109+
originalMessageHeader.appendChild(
110+
document.createTextNode(
111+
`${error.originalName || ''}: ${error.originalMessage}`
112+
)
113+
);
114+
115+
originalErrorContainer.appendChild(originalMessageHeader);
116+
messageHeader.appendChild(originalErrorContainer);
117+
}
118+
95119
if (
96120
areActionsEnabled() &&
97121
error.suggestions &&

src/sandbox/react-error-overlay/overlay.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,9 @@ function transformErrors() {
212212
);
213213

214214
if (transformation) {
215+
errRef.error.originalName = errRef.error.name;
216+
errRef.error.originalMessage = errRef.error.message;
217+
215218
errRef.error.name = transformation.name || errRef.error.name;
216219
errRef.error.message = transformation.message;
217220
errRef.error.suggestions = transformation.suggestions;

src/sandbox/react-error-overlay/styles.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,22 @@ const messageHeaderStyle = {
112112
'border-bottom': '1px solid #ddd',
113113
};
114114

115+
const originalHeaderStyle = {
116+
color: 'rgba(0, 0, 0, 0.7)',
117+
'font-size': '.75em',
118+
'padding-top': '1rem',
119+
'padding-bottom': '.5rem',
120+
};
121+
122+
const originalMessageHeaderStyle = {
123+
color: 'black',
124+
'font-size': '.875em',
125+
'font-family': 'Consolas, Menlo, monospace',
126+
margin: 0,
127+
'white-space': 'pre-wrap',
128+
overflow: 'auto',
129+
};
130+
115131
const functionNameStyle = {};
116132

117133
const linkStyle = {
@@ -234,6 +250,7 @@ const suggestionsButtonStyle = {
234250
'margin-bottom': '.5rem',
235251
'font-size': '.75rem',
236252
'border-radius': '4px',
253+
'margin-right': '.5rem',
237254
border: '1px solid #6CAEDD',
238255
cursor: 'pointer',
239256
};
@@ -259,6 +276,8 @@ export {
259276
secondaryPreStyle,
260277
omittedFramesCollapsedStyle,
261278
omittedFramesExpandedStyle,
279+
originalHeaderStyle,
280+
originalMessageHeaderStyle,
262281
toggleStyle,
263282
codeStyle,
264283
hiddenStyle,

0 commit comments

Comments
 (0)