mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-17 16:47:01 +05:30
Merge #186
186: Simplify ordering logic r=msfjarvis a=msfjarvis bors r+ Co-authored-by: Aditya Wasan <adityawasan55@gmail.com> Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
commit
bc9ad69260
2 changed files with 9 additions and 12 deletions
|
@ -35,7 +35,7 @@ fun SavedPosts(
|
||||||
) {
|
) {
|
||||||
val listState = rememberLazyListState()
|
val listState = rememberLazyListState()
|
||||||
val urlLauncher = LocalUrlLauncher.current
|
val urlLauncher = LocalUrlLauncher.current
|
||||||
val sortOrder by sortReversed.collectAsState(false)
|
val reverseSort by sortReversed.collectAsState(false)
|
||||||
|
|
||||||
if (posts.isEmpty()) {
|
if (posts.isEmpty()) {
|
||||||
Column(
|
Column(
|
||||||
|
@ -56,19 +56,16 @@ fun SavedPosts(
|
||||||
state = listState,
|
state = listState,
|
||||||
modifier = Modifier.then(modifier),
|
modifier = Modifier.then(modifier),
|
||||||
) {
|
) {
|
||||||
val grouped =
|
val grouped = posts.groupBy { it.createdAt.asZonedDateTime().month }.toMutableMap()
|
||||||
posts.groupBy { it.createdAt.asZonedDateTime().month }.apply {
|
if (reverseSort) {
|
||||||
if (sortOrder) {
|
val copy = grouped.toMap()
|
||||||
toSortedMap(
|
grouped.clear()
|
||||||
Comparator { first, second ->
|
copy.keys.reversed().forEach { month ->
|
||||||
return@Comparator if (first > second) -1 else if (first < second) 1 else 0
|
grouped[month] = requireNotNull(copy[month]).reversed()
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
grouped.forEach { (month, posts) ->
|
grouped.forEach { (month, posts) ->
|
||||||
stickyHeader { MonthHeader(month = month) }
|
stickyHeader { MonthHeader(month = month) }
|
||||||
@Suppress("NAME_SHADOWING") val posts = if (sortOrder) posts.reversed() else posts
|
|
||||||
items(posts) { item ->
|
items(posts) { item ->
|
||||||
LobstersItem(
|
LobstersItem(
|
||||||
post = item,
|
post = item,
|
||||||
|
|
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
|
@ -1,6 +1,6 @@
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionSha256Sum=9af5c8e7e2cd1a3b0f694a4ac262b9f38c75262e74a9e8b5101af302a6beadd7
|
distributionSha256Sum=a52ad940d4dd2abdee5c7f4486788b6b3859daa7e260c08c1c18eec8cba297e6
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-rc-1-all.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-rc-1-all.zip
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue