Skip to content

Commit 00a4908

Browse files
katywingsryansolid
andauthored
fix: pass errorless ErrorEvent to dev overlay (#1647)
Co-authored-by: Ryan Carniato <ryansolid@gmail.com>
1 parent a5c279f commit 00a4908

File tree

3 files changed

+24
-9
lines changed

3 files changed

+24
-9
lines changed

.changeset/long-pumpkins-behave.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@solidjs/start": patch
3+
---
4+
5+
Show proper dev overlay for ErrorEvent with no error property.

packages/start/src/shared/dev-overlay/DevOverlayDialog.tsx

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,25 @@ interface ErrorInfoProps {
2121
}
2222

2323
function ErrorInfo(props: ErrorInfoProps): JSX.Element {
24+
const error = createMemo(() => {
25+
const e = props.error;
26+
27+
if (e instanceof Error) {
28+
return { name: e.name, message: e.message };
29+
}
30+
31+
if (e instanceof ErrorEvent) {
32+
return { message: e.message };
33+
}
34+
35+
return { message: (e as Error).toString() };
36+
});
37+
2438
return (
25-
<Show when={props.error instanceof Error && props.error} keyed fallback={<span>{(props.error as Error).toString()}</span>}>
26-
{(current) => (
27-
<span class="dev-overlay-error-info">
28-
<span class="dev-overlay-error-info-name">{current.name}</span>
29-
<span class="dev-overlay-error-info-message">{current.message}</span>
30-
</span>
31-
)}
32-
</Show>
39+
<span class="dev-overlay-error-info">
40+
<span class="dev-overlay-error-info-name">{error().name}</span>
41+
<span class="dev-overlay-error-info-message">{error().message}</span>
42+
</span>
3343
);
3444
}
3545

packages/start/src/shared/dev-overlay/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export function DevOverlay(props: DevOverlayProps): JSX.Element {
3737

3838
createEffect(() => {
3939
const onErrorEvent = (error: ErrorEvent) => {
40-
pushError(error.error);
40+
pushError(error.error ?? error);
4141
};
4242

4343
window.addEventListener("error", onErrorEvent);

0 commit comments

Comments
 (0)