From b25c13394f396860ba276970d34b901a9e8f643e Mon Sep 17 00:00:00 2001
From: Dan Abramov <dan.abramov@gmail.com>
Date: Sun, 14 May 2017 12:14:22 +0100
Subject: [PATCH] Skip React frames that are too close (#2143)

---
 .../react-error-overlay/src/utils/warnings.js     | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/packages/react-error-overlay/src/utils/warnings.js b/packages/react-error-overlay/src/utils/warnings.js
index b2fc34bb4..d714eb4f8 100644
--- a/packages/react-error-overlay/src/utils/warnings.js
+++ b/packages/react-error-overlay/src/utils/warnings.js
@@ -13,11 +13,26 @@ function massage(
 
   // Reassemble the stack with full filenames provided by React
   let stack = '';
+  let lastFilename;
+  let lastLineNumber;
   for (let index = 0; index < frames.length; ++index) {
     const { fileName, lineNumber } = frames[index];
     if (fileName == null || lineNumber == null) {
       continue;
     }
+
+    // TODO: instead, collapse them in the UI
+    if (
+      fileName === lastFilename &&
+      typeof lineNumber === 'number' &&
+      typeof lastLineNumber === 'number' &&
+      Math.abs(lineNumber - lastLineNumber) < 3
+    ) {
+      continue;
+    }
+    lastFilename = fileName;
+    lastLineNumber = lineNumber;
+
     let { functionName } = frames[index];
     functionName = functionName || '(anonymous function)';
     stack += `in ${functionName} (at ${fileName}:${lineNumber})\n`;
-- 
GitLab