mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-14 21:07:04 +05:30
feat(common): use a simplified search algorithm
This commit is contained in:
parent
2ab69de686
commit
450601f26b
2 changed files with 13 additions and 3 deletions
|
@ -49,6 +49,15 @@ fun toggleAllExpanded(commentNode: CommentNode): CommentNode {
|
|||
return commentNode
|
||||
}
|
||||
|
||||
fun findTopMostParent(node: CommentNode): CommentNode {
|
||||
val parent = node.parent
|
||||
return if (parent != null) {
|
||||
findTopMostParent(parent)
|
||||
} else {
|
||||
node
|
||||
}
|
||||
}
|
||||
|
||||
fun LazyListScope.nodes(
|
||||
nodes: List<CommentNode>,
|
||||
htmlConverter: HTMLConverter,
|
||||
|
|
|
@ -63,12 +63,13 @@ private fun CommentsPageInternal(
|
|||
nodes = commentNodes,
|
||||
htmlConverter = htmlConverter,
|
||||
toggleExpanded = { node ->
|
||||
// TODO(anunaym14): make this search recursive
|
||||
val newNode = toggleAllExpanded(node)
|
||||
val parent = findTopMostParent(newNode)
|
||||
val index =
|
||||
commentNodes.indexOf(commentNodes.find { it.comment.url == node.comment.url })
|
||||
commentNodes.indexOf(commentNodes.find { it.comment.url == parent.comment.url })
|
||||
if (index != -1) {
|
||||
commentNodes.removeAt(index)
|
||||
commentNodes.add(index, toggleAllExpanded(node))
|
||||
commentNodes.add(index, parent)
|
||||
}
|
||||
},
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue