From 2bc89a6655ab75e8e18cc968e7e586658907ce08 Mon Sep 17 00:00:00 2001
From: Simon Ser <contact@emersion.fr>
Date: Fri, 28 May 2021 15:51:39 +0200
Subject: [PATCH] =?UTF-8?q?Filter=20out=20PART=20=E2=86=92=20JOIN=20pairs?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 components/buffer.js | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/components/buffer.js b/components/buffer.js
index 7eb6f24..adb2075 100644
--- a/components/buffer.js
+++ b/components/buffer.js
@@ -296,6 +296,23 @@ export default class Buffer extends Component {
 			`;
 		}
 		function createFoldGroup(msgs) {
+			// Filter out PART → JOIN pairs
+			var partIndexes = new Map();
+			var keep = [];
+			msgs.forEach((msg, i) => {
+				if (msg.command === "PART" || msg.command === "QUIT") {
+					partIndexes.set(msg.prefix.name, i);
+				}
+				if (msg.command === "JOIN" && partIndexes.has(msg.prefix.name)) {
+					keep[partIndexes.get(msg.prefix.name)] = false;
+					partIndexes.delete(msg.prefix.name);
+					keep.push(false);
+				} else {
+					keep.push(true);
+				}
+			});
+			msgs = msgs.filter((msg, i) => keep[i]);
+
 			if (msgs.length === 0) {
 				return null;
 			} else if (msgs.length === 1) {