Skip to content

Commit 1a1678a

Browse files
VIA-579 AJ/AS Fix eslint errors in ClientUnhandledErrorLogger.tsx
1 parent 1066a22 commit 1a1678a

File tree

1 file changed

+41
-43
lines changed

1 file changed

+41
-43
lines changed

src/app/_components/client-unhandled-error-logger/ClientUnhandledErrorLogger.tsx

Lines changed: 41 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -3,57 +3,55 @@
33
import logClientSideError from "@src/utils/client-side-error-logger/client-side-error-logger";
44
import { ClientSideErrorTypes } from "@src/utils/constants";
55
import { useRouter } from "next/navigation";
6-
import { useEffect } from "react";
7-
8-
let router;
9-
10-
const reportClientSideUnhandledError = (errorEvent: ErrorEvent) => {
11-
errorEvent.preventDefault();
12-
13-
logClientSideError(ClientSideErrorTypes.UNHANDLED_ERROR)
14-
.then((logOnClientConsole: boolean) => {
15-
if (logOnClientConsole) {
16-
console.log("Unhandled error event", errorEvent);
17-
}
18-
})
19-
.catch(() => {
20-
// do not show anything to the user; catching prevents an infinite loop if the logger itself throws an error which is unhandled
21-
});
22-
23-
router.push("/service-failure");
24-
};
25-
26-
const reportClientSideUnhandledPromiseRejectionError = (promiseRejectionEvent: PromiseRejectionEvent) => {
27-
promiseRejectionEvent.preventDefault();
28-
29-
logClientSideError(ClientSideErrorTypes.UNHANDLED_PROMISE_REJECT_ERROR)
30-
.then((logOnClientConsole: boolean) => {
31-
if (logOnClientConsole) {
32-
console.log("Unhandled promise rejection event", promiseRejectionEvent);
33-
}
34-
})
35-
.catch(() => {
36-
// do not show anything to the user; catching prevents an infinite loop if the logger itself throws an error which is unhandled
37-
});
38-
39-
router.push("/service-failure");
40-
};
6+
import { useCallback, useEffect } from "react";
417

428
const ClientUnhandledErrorLogger = (): null => {
43-
router = useRouter();
9+
const router = useRouter();
10+
11+
const reportUnhandledError = useCallback((errorEvent: ErrorEvent) => {
12+
errorEvent.preventDefault();
13+
14+
logClientSideError(ClientSideErrorTypes.UNHANDLED_ERROR)
15+
.then((logOnClientConsole: boolean) => {
16+
if (logOnClientConsole) {
17+
console.log("Unhandled error event", errorEvent);
18+
}
19+
})
20+
.catch(() => {
21+
// do not show anything to the user; catching prevents an infinite loop if the logger itself throws an error which is unhandled
22+
});
23+
24+
router.push("/service-failure");
25+
}, [router]);
26+
27+
const reportPromiseRejectionError = useCallback((promiseRejectionEvent: PromiseRejectionEvent) => {
28+
promiseRejectionEvent.preventDefault();
29+
30+
logClientSideError(ClientSideErrorTypes.UNHANDLED_PROMISE_REJECT_ERROR)
31+
.then((logOnClientConsole: boolean) => {
32+
if (logOnClientConsole) {
33+
console.log("Unhandled promise rejection event", promiseRejectionEvent);
34+
}
35+
})
36+
.catch(() => {
37+
// do not show anything to the user; catching prevents an infinite loop if the logger itself throws an error which is unhandled
38+
});
39+
40+
router.push("/service-failure");
41+
}, [router]);
4442

4543
useEffect(() => {
46-
window.addEventListener("unhandledrejection", (event) => reportClientSideUnhandledPromiseRejectionError(event));
47-
window.addEventListener("error", (event) => reportClientSideUnhandledError(event));
44+
console.log("mounted");
45+
window.addEventListener("unhandledrejection", reportPromiseRejectionError);
46+
window.addEventListener("error", reportUnhandledError);
4847

4948
// on component unmount
5049
return () => {
51-
window.removeEventListener("unhandledrejection", (event) =>
52-
reportClientSideUnhandledPromiseRejectionError(event),
53-
);
54-
window.removeEventListener("error", (event) => reportClientSideUnhandledError(event));
50+
console.log("unmounted");
51+
window.removeEventListener("unhandledrejection", reportPromiseRejectionError);
52+
window.removeEventListener("error", reportUnhandledError);
5553
};
56-
}, []);
54+
}, [reportUnhandledError, reportPromiseRejectionError]);
5755

5856
return null;
5957
};

0 commit comments

Comments
 (0)