diff --git a/demos/intermediate/src/containers/NotFound/index.tsx b/demos/intermediate/src/containers/NotFound/index.tsx
index b3c0454..783df55 100644
--- a/demos/intermediate/src/containers/NotFound/index.tsx
+++ b/demos/intermediate/src/containers/NotFound/index.tsx
@@ -8,7 +8,7 @@ const NotFound: ErrorPageComponentType = ({ error }) => (
Uh-oh!
We couldn't catch that Pokémon.
- {error && {error}}
+ {error instanceof Error && {error.message}}
View 'em all
diff --git a/docs/page-components.md b/docs/page-components.md
index 37c7248..21b4739 100644
--- a/docs/page-components.md
+++ b/docs/page-components.md
@@ -59,7 +59,7 @@ import {
const NotFound: ErrorPageComponentType = ({ error }) => (
Not found.
- {error &&
{error}
}
+ {error instanceof Error &&
{error.message}
}
);
diff --git a/package/src/Guard.tsx b/package/src/Guard.tsx
index b7cec29..27dc352 100644
--- a/package/src/Guard.tsx
+++ b/package/src/Guard.tsx
@@ -13,7 +13,6 @@ import {
NextAction,
NextPropsPayload,
NextRedirectPayload,
- RouteError,
} from './types';
type PageProps = NextPropsPayload;
@@ -40,7 +39,7 @@ const Guard: React.FunctionComponent = ({ children, component, meta,
const hasGuards = useMemo(() => !!(guards && guards.length > 0), [guards]);
const [validationsRequested, setValidationsRequested] = useStateRef(0);
const [routeValidated, setRouteValidated] = useStateRef(!hasGuards);
- const [routeError, setRouteError] = useStateWhenMounted(null);
+ const [routeError, setRouteError] = useStateWhenMounted(undefined);
const [routeRedirect, setRouteRedirect] = useStateWhenMounted(null);
const [pageProps, setPageProps] = useStateWhenMounted({});
@@ -126,7 +125,7 @@ const Guard: React.FunctionComponent = ({ children, component, meta,
const currentRequests = validationsRequested.current;
let pageProps: PageProps = {};
- let routeError: RouteError = null;
+ let routeError: unknown = undefined;
let routeRedirect: RouteRedirect = null;
try {
@@ -134,7 +133,7 @@ const Guard: React.FunctionComponent = ({ children, component, meta,
pageProps = props;
routeRedirect = redirect;
} catch (error) {
- routeError = error.message || 'Not found.';
+ routeError = error;
}
if (currentRequests === getValidationsRequested()) {
@@ -152,7 +151,7 @@ const Guard: React.FunctionComponent = ({ children, component, meta,
useEffect(() => {
if (hasPathChanged) {
setValidationsRequested(requests => requests + 1);
- setRouteError(null);
+ setRouteError(undefined);
setRouteRedirect(null);
setRouteValidated(!hasGuards);
if (hasGuards) {
diff --git a/package/src/index.ts b/package/src/index.ts
index 4822bc7..862d2f2 100644
--- a/package/src/index.ts
+++ b/package/src/index.ts
@@ -6,7 +6,6 @@ export {
GuardFunction,
GuardProviderProps,
Next,
- RouteError,
PageComponent,
LoadingPageComponentType,
ErrorPageComponentType,
diff --git a/package/src/types.ts b/package/src/types.ts
index 599220d..87eb8d8 100644
--- a/package/src/types.ts
+++ b/package/src/types.ts
@@ -57,8 +57,6 @@ export type GuardFunction = (
next: Next,
) => void;
-export type RouteError = string | null;
-
/**
* Page Component Types
*/
@@ -72,10 +70,10 @@ export type PageComponent =
| number;
export type LoadingPageComponent = PageComponent;
-export type ErrorPageComponent = PageComponent<{ error: RouteError }>;
+export type ErrorPageComponent = PageComponent<{ error: unknown }>;
export type LoadingPageComponentType = PageComponentType;
-export type ErrorPageComponentType = PageComponentType<{ error: RouteError }>;
+export type ErrorPageComponentType = PageComponentType<{ error: unknown }>;
/**
* Props