/
SavedPosts.kt
37 lines (34 loc) · 1.11 KB
/
SavedPosts.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package dev.msfjarvis.lobsters.ui.posts
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumnFor
import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import dev.msfjarvis.lobsters.model.LobstersPost
import dev.msfjarvis.lobsters.ui.urllauncher.UrlLauncherAmbient
@Composable
fun SavedPosts(
posts: List<LobstersPost>,
modifier: Modifier = Modifier,
saveAction: (LobstersPost) -> Unit,
) {
val listState = rememberLazyListState()
val urlLauncher = UrlLauncherAmbient.current
if (posts.isEmpty()) {
EmptyList(saved = true)
} else {
LazyColumnFor(
items = posts,
state = listState,
modifier = Modifier.padding(horizontal = 8.dp).then(modifier)
) { item ->
LobstersItem(
post = item,
onClick = { urlLauncher.launch(item.url.ifEmpty { item.commentsUrl }) },
onLongClick = { urlLauncher.launch(item.commentsUrl) },
onSaveButtonClick = { saveAction.invoke(item) },
)
}
}
}