mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-15 07:37:03 +05:30
android: extract common code from lists
This commit is contained in:
parent
f2b4bc02f0
commit
c0f4f42643
3 changed files with 35 additions and 22 deletions
|
@ -4,13 +4,7 @@ import androidx.compose.foundation.lazy.LazyColumn
|
||||||
import androidx.compose.foundation.lazy.LazyListState
|
import androidx.compose.foundation.lazy.LazyListState
|
||||||
import androidx.compose.foundation.lazy.items
|
import androidx.compose.foundation.lazy.items
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
|
||||||
import androidx.compose.runtime.getValue
|
|
||||||
import androidx.compose.runtime.mutableStateOf
|
|
||||||
import androidx.compose.runtime.remember
|
|
||||||
import androidx.compose.runtime.setValue
|
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import dev.msfjarvis.claw.common.posts.LobstersCard
|
|
||||||
import dev.msfjarvis.claw.common.posts.PostActions
|
import dev.msfjarvis.claw.common.posts.PostActions
|
||||||
import dev.msfjarvis.claw.database.local.SavedPost
|
import dev.msfjarvis.claw.database.local.SavedPost
|
||||||
|
|
||||||
|
@ -27,13 +21,10 @@ fun DatabasePosts(
|
||||||
modifier = modifier,
|
modifier = modifier,
|
||||||
) {
|
) {
|
||||||
items(items) { item ->
|
items(items) { item ->
|
||||||
var saved by remember(item) { mutableStateOf(false) }
|
ListItem(
|
||||||
LaunchedEffect(item) { saved = isSaved(item) }
|
item = item,
|
||||||
LobstersCard(
|
isSaved = isSaved,
|
||||||
post = item,
|
|
||||||
isSaved = saved,
|
|
||||||
postActions = postActions,
|
postActions = postActions,
|
||||||
modifier = modifier,
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
package dev.msfjarvis.claw.android.ui.lists
|
||||||
|
|
||||||
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
|
import androidx.compose.runtime.getValue
|
||||||
|
import androidx.compose.runtime.mutableStateOf
|
||||||
|
import androidx.compose.runtime.remember
|
||||||
|
import androidx.compose.runtime.setValue
|
||||||
|
import androidx.compose.ui.Modifier
|
||||||
|
import dev.msfjarvis.claw.common.posts.LobstersCard
|
||||||
|
import dev.msfjarvis.claw.common.posts.PostActions
|
||||||
|
import dev.msfjarvis.claw.database.local.SavedPost
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun ListItem(
|
||||||
|
item: SavedPost,
|
||||||
|
isSaved: suspend (SavedPost) -> Boolean,
|
||||||
|
postActions: PostActions,
|
||||||
|
modifier: Modifier = Modifier,
|
||||||
|
) {
|
||||||
|
var saved by remember(item) { mutableStateOf(false) }
|
||||||
|
LaunchedEffect(item) { saved = isSaved(item) }
|
||||||
|
LobstersCard(
|
||||||
|
post = item,
|
||||||
|
isSaved = saved,
|
||||||
|
postActions = postActions,
|
||||||
|
modifier = modifier,
|
||||||
|
)
|
||||||
|
}
|
|
@ -3,15 +3,11 @@ package dev.msfjarvis.claw.android.ui.lists
|
||||||
import androidx.compose.foundation.lazy.LazyColumn
|
import androidx.compose.foundation.lazy.LazyColumn
|
||||||
import androidx.compose.foundation.lazy.LazyListState
|
import androidx.compose.foundation.lazy.LazyListState
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.runtime.mutableStateOf
|
|
||||||
import androidx.compose.runtime.remember
|
|
||||||
import androidx.compose.runtime.setValue
|
import androidx.compose.runtime.setValue
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.paging.compose.LazyPagingItems
|
import androidx.paging.compose.LazyPagingItems
|
||||||
import androidx.paging.compose.items
|
import androidx.paging.compose.items
|
||||||
import dev.msfjarvis.claw.common.posts.LobstersCard
|
|
||||||
import dev.msfjarvis.claw.common.posts.PostActions
|
import dev.msfjarvis.claw.common.posts.PostActions
|
||||||
import dev.msfjarvis.claw.common.posts.toDbModel
|
import dev.msfjarvis.claw.common.posts.toDbModel
|
||||||
import dev.msfjarvis.claw.database.local.SavedPost
|
import dev.msfjarvis.claw.database.local.SavedPost
|
||||||
|
@ -32,13 +28,10 @@ fun NetworkPosts(
|
||||||
items(items) { item ->
|
items(items) { item ->
|
||||||
if (item != null) {
|
if (item != null) {
|
||||||
val dbModel = item.toDbModel()
|
val dbModel = item.toDbModel()
|
||||||
var saved by remember(dbModel) { mutableStateOf(false) }
|
ListItem(
|
||||||
LaunchedEffect(dbModel) { saved = isSaved(dbModel) }
|
item = dbModel,
|
||||||
LobstersCard(
|
isSaved = isSaved,
|
||||||
post = dbModel,
|
|
||||||
isSaved = saved,
|
|
||||||
postActions = postActions,
|
postActions = postActions,
|
||||||
modifier = Modifier,
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue