From c50790e4f9bd75730cba830e7e732a10998f82f0 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Wed, 21 Aug 2024 13:07:15 +0530 Subject: [PATCH] refactor(common): get rid of interior mutability in `CommentNode` --- .../claw/common/comments/CommentNode.kt | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/common/src/main/kotlin/dev/msfjarvis/claw/common/comments/CommentNode.kt b/common/src/main/kotlin/dev/msfjarvis/claw/common/comments/CommentNode.kt index b8a3a028..bedfa5a2 100644 --- a/common/src/main/kotlin/dev/msfjarvis/claw/common/comments/CommentNode.kt +++ b/common/src/main/kotlin/dev/msfjarvis/claw/common/comments/CommentNode.kt @@ -14,7 +14,7 @@ internal data class CommentNode( var parent: CommentNode? = null, val children: MutableList = mutableListOf(), val isUnread: Boolean = false, - var indentLevel: Int, + val indentLevel: Int, ) { fun addChild(child: CommentNode) { @@ -22,8 +22,16 @@ internal data class CommentNode( children.add(child) child.parent = this } else { - child.indentLevel += 1 - children.lastOrNull()?.addChild(child) + children + .lastOrNull() + ?.addChild( + CommentNode( + comment = child.comment, + parent = child.parent, + isUnread = child.isUnread, + indentLevel = child.indentLevel + 1, + ) + ) } } } @@ -45,12 +53,12 @@ internal fun createListNode( ) ) } else { - commentNodes.lastOrNull()?.let { - it.addChild( + commentNodes.lastOrNull()?.let { commentNode -> + commentNode.addChild( CommentNode( comment = comments[i], isUnread = isUnread(comments[i].shortId), - indentLevel = it.indentLevel + 1, + indentLevel = commentNode.indentLevel + 1, ) ) }