mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-14 22:17:03 +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
|
return commentNode
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun findTopMostParent(node: CommentNode): CommentNode {
|
||||||
|
val parent = node.parent
|
||||||
|
return if (parent != null) {
|
||||||
|
findTopMostParent(parent)
|
||||||
|
} else {
|
||||||
|
node
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun LazyListScope.nodes(
|
fun LazyListScope.nodes(
|
||||||
nodes: List<CommentNode>,
|
nodes: List<CommentNode>,
|
||||||
htmlConverter: HTMLConverter,
|
htmlConverter: HTMLConverter,
|
||||||
|
|
|
@ -63,12 +63,13 @@ private fun CommentsPageInternal(
|
||||||
nodes = commentNodes,
|
nodes = commentNodes,
|
||||||
htmlConverter = htmlConverter,
|
htmlConverter = htmlConverter,
|
||||||
toggleExpanded = { node ->
|
toggleExpanded = { node ->
|
||||||
// TODO(anunaym14): make this search recursive
|
val newNode = toggleAllExpanded(node)
|
||||||
|
val parent = findTopMostParent(newNode)
|
||||||
val index =
|
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) {
|
if (index != -1) {
|
||||||
commentNodes.removeAt(index)
|
commentNodes.removeAt(index)
|
||||||
commentNodes.add(index, toggleAllExpanded(node))
|
commentNodes.add(index, parent)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue