From 0d418666c6c0aa118a8d51001ffc57da85c382a4 Mon Sep 17 00:00:00 2001 From: Andrey Zhavoronkov Date: Wed, 26 Aug 2020 16:21:28 +0300 Subject: [PATCH] used addEventListener instead of overriding window.onerror for global error handling (#2079) --- cvat-ui/package-lock.json | 2 +- cvat-ui/package.json | 2 +- cvat-ui/src/index.tsx | 25 +++++++++++-------------- 3 files changed, 13 insertions(+), 16 deletions(-) diff --git a/cvat-ui/package-lock.json b/cvat-ui/package-lock.json index e2ac4ffd..5ca22abc 100644 --- a/cvat-ui/package-lock.json +++ b/cvat-ui/package-lock.json @@ -1,6 +1,6 @@ { "name": "cvat-ui", - "version": "1.8.2", + "version": "1.8.3", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/cvat-ui/package.json b/cvat-ui/package.json index d9c0229d..c2705de8 100644 --- a/cvat-ui/package.json +++ b/cvat-ui/package.json @@ -1,6 +1,6 @@ { "name": "cvat-ui", - "version": "1.8.2", + "version": "1.8.3", "description": "CVAT single-page application", "main": "src/index.tsx", "scripts": { diff --git a/cvat-ui/src/index.tsx b/cvat-ui/src/index.tsx index cfb1605d..f1f7f7f1 100644 --- a/cvat-ui/src/index.tsx +++ b/cvat-ui/src/index.tsx @@ -144,20 +144,17 @@ ReactDOM.render( document.getElementById('root'), ); -window.onerror = ( - message: Event | string, - source?: string, - lineno?: number, - colno?: number, - error?: Error, -) => { - if (typeof (message) === 'string' && source && typeof (lineno) === 'number' && (typeof (colno) === 'number') && error) { +window.addEventListener('error', (errorEvent: ErrorEvent) => { + if (errorEvent.filename + && typeof (errorEvent.lineno) === 'number' + && typeof (errorEvent.colno) === 'number' + && errorEvent.error) { const logPayload = { - filename: source, - line: lineno, - message: error.message, - column: colno, - stack: error.stack, + filename: errorEvent.filename, + line: errorEvent.lineno, + message: errorEvent.error.message, + column: errorEvent.colno, + stack: errorEvent.error.stack, }; const store = getCVATStore(); @@ -171,4 +168,4 @@ window.onerror = ( logger.log(LogType.sendException, logPayload); } } -}; +});