From 90fb09cac64b4184901d07b76d5bf26538ebb4d4 Mon Sep 17 00:00:00 2001 From: skjsjhb Date: Sat, 1 Mar 2025 12:10:37 +0800 Subject: [PATCH] perf(ui): suppress error events from ResizeObserver --- src/renderer/components/ExceptionDisplay.tsx | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/renderer/components/ExceptionDisplay.tsx b/src/renderer/components/ExceptionDisplay.tsx index b31f3130..c5c78d6d 100644 --- a/src/renderer/components/ExceptionDisplay.tsx +++ b/src/renderer/components/ExceptionDisplay.tsx @@ -11,13 +11,10 @@ export function ExceptionDisplay() { const [isOpen, setOpen] = useState(false); function handleException(ev: ErrorEvent | PromiseRejectionEvent) { - let e: unknown; + // @ts-expect-error Unclear property definition in error events + let e = ev.error || ev.reason || ev.message; - if ("error" in ev) { - e = ev.error; - } else { - e = ev.reason; - } + if (!shouldSuppressError(e)) return; console.error("Received error event:"); console.error(e); @@ -127,3 +124,8 @@ function restoreError(e: unknown) { return e; } + +function shouldSuppressError(e: unknown): boolean { + // https://github.com/inokawa/virtua?tab=readme-ov-file#what-is-resizeobserver-loop-completed-with-undelivered-notifications-error + return e !== "ResizeObserver loop completed with undelivered notifications."; +}