From 98a641702c962356c324b2fedc36ba55441fa0a0 Mon Sep 17 00:00:00 2001 From: Marc Rousavy Date: Sat, 18 Nov 2023 12:16:52 +0100 Subject: [PATCH] fix: Log errors to console if no `onError` handler is passed --- package/src/Camera.tsx | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/package/src/Camera.tsx b/package/src/Camera.tsx index 75e5675..4761cb6 100644 --- a/package/src/Camera.tsx +++ b/package/src/Camera.tsx @@ -380,13 +380,16 @@ export class Camera extends React.PureComponent { //#region Events (Wrapped to maintain reference equality) private onError(event: NativeSyntheticEvent): void { + const error = event.nativeEvent + const cause = isErrorWithCause(error.cause) ? error.cause : undefined + // @ts-expect-error We're casting from unknown bridge types to TS unions, I expect it to hopefully work + const cameraError = new CameraRuntimeError(error.code, error.message, cause) + if (this.props.onError != null) { - const error = event.nativeEvent - const cause = isErrorWithCause(error.cause) ? error.cause : undefined - this.props.onError( - // @ts-expect-error We're casting from unknown bridge types to TS unions, I expect it to hopefully work - new CameraRuntimeError(error.code, error.message, cause), - ) + this.props.onError(cameraError) + } else { + // User didn't pass an `onError` handler, so just log it to console + console.error(`Camera.onError(${cameraError.code}): ${cameraError.message}`, cameraError) } }