Bring ArticleListView up to speed. Fix callback naming mistake in BookmarkGroupItemOptions and refactor usages accordingly.
This commit is contained in:
+24
-7
@@ -28,6 +28,7 @@ import androidx.compose.foundation.lazy.rememberLazyListState
|
||||
import androidx.compose.foundation.pager.HorizontalPager
|
||||
import androidx.compose.foundation.pager.PagerState
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import com.vitorpamplona.amethyst.model.AddressableNote
|
||||
@@ -35,33 +36,39 @@ import com.vitorpamplona.amethyst.ui.navigation.navs.INav
|
||||
import com.vitorpamplona.amethyst.ui.note.NoteCompose
|
||||
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
|
||||
import com.vitorpamplona.amethyst.ui.theme.FeedPadding
|
||||
import com.vitorpamplona.quartz.nip01Core.core.Address
|
||||
|
||||
@Composable
|
||||
fun RenderArticleList(
|
||||
bookmarkGroupViewModel: BookmarkGroupViewModel,
|
||||
pagerState: PagerState,
|
||||
accountViewModel: AccountViewModel,
|
||||
deleteArticleBookmark: (articleAddress: Address, isPrivate: Boolean) -> Unit,
|
||||
nav: INav,
|
||||
modifier: Modifier = Modifier,
|
||||
) {
|
||||
val privateArticles = bookmarkGroupViewModel.privateArticles().collectAsStateWithLifecycle()
|
||||
val publicArticles = bookmarkGroupViewModel.publicArticles().collectAsStateWithLifecycle()
|
||||
val privateArticles by bookmarkGroupViewModel.privateArticles().collectAsStateWithLifecycle()
|
||||
val publicArticles by bookmarkGroupViewModel.publicArticles().collectAsStateWithLifecycle()
|
||||
|
||||
HorizontalPager(pagerState, modifier) { page ->
|
||||
when (page) {
|
||||
0 ->
|
||||
ArticleList(
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
articles = publicArticles.value,
|
||||
isPrivate = false,
|
||||
articles = publicArticles,
|
||||
onDeleteArticleBookmark = { articleAddress ->
|
||||
deleteArticleBookmark(articleAddress, false)
|
||||
},
|
||||
accountViewModel = accountViewModel,
|
||||
nav = nav,
|
||||
)
|
||||
1 ->
|
||||
ArticleList(
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
articles = privateArticles.value,
|
||||
isPrivate = true,
|
||||
articles = privateArticles,
|
||||
onDeleteArticleBookmark = { articleAddress ->
|
||||
deleteArticleBookmark(articleAddress, true)
|
||||
},
|
||||
accountViewModel = accountViewModel,
|
||||
nav = nav,
|
||||
)
|
||||
@@ -73,7 +80,7 @@ fun RenderArticleList(
|
||||
fun ArticleList(
|
||||
modifier: Modifier = Modifier,
|
||||
articles: List<AddressableNote>,
|
||||
isPrivate: Boolean,
|
||||
onDeleteArticleBookmark: (Address) -> Unit,
|
||||
accountViewModel: AccountViewModel,
|
||||
nav: INav,
|
||||
) {
|
||||
@@ -92,6 +99,16 @@ fun ArticleList(
|
||||
quotesLeft = 3,
|
||||
accountViewModel = accountViewModel,
|
||||
nav = nav,
|
||||
moreOptions = {
|
||||
BookmarkGroupItemOptions(
|
||||
baseNote = item,
|
||||
onDeleteBookmarkItem = {
|
||||
onDeleteArticleBookmark(item.address)
|
||||
},
|
||||
accountViewModel = accountViewModel,
|
||||
nav = nav,
|
||||
)
|
||||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+4
-4
@@ -60,7 +60,7 @@ import kotlinx.coroutines.launch
|
||||
@Composable
|
||||
fun BookmarkGroupItemOptions(
|
||||
baseNote: Note,
|
||||
onDeleteBookmarkGroup: () -> Unit,
|
||||
onDeleteBookmarkItem: () -> Unit,
|
||||
editState: State<GenericLoadable<EditState>>? = null,
|
||||
accountViewModel: AccountViewModel,
|
||||
nav: INav,
|
||||
@@ -77,7 +77,7 @@ fun BookmarkGroupItemOptions(
|
||||
BookmarkGroupItemOptionsMenu(
|
||||
note = baseNote,
|
||||
onDismiss = { popupExpanded.value = false },
|
||||
onDeleteBookmarkGroup = onDeleteBookmarkGroup,
|
||||
onDeleteBookmarkItem = onDeleteBookmarkItem,
|
||||
editState = editState,
|
||||
accountViewModel = accountViewModel,
|
||||
nav = nav,
|
||||
@@ -90,7 +90,7 @@ fun BookmarkGroupItemOptions(
|
||||
fun BookmarkGroupItemOptionsMenu(
|
||||
note: Note,
|
||||
onDismiss: () -> Unit,
|
||||
onDeleteBookmarkGroup: () -> Unit,
|
||||
onDeleteBookmarkItem: () -> Unit,
|
||||
editState: State<GenericLoadable<EditState>>? = null,
|
||||
accountViewModel: AccountViewModel,
|
||||
nav: INav,
|
||||
@@ -152,7 +152,7 @@ fun BookmarkGroupItemOptionsMenu(
|
||||
DropdownMenuItem(
|
||||
text = { Text("Remove from Bookmark List") },
|
||||
onClick = {
|
||||
onDeleteBookmarkGroup()
|
||||
onDeleteBookmarkItem()
|
||||
onDismiss()
|
||||
},
|
||||
)
|
||||
+1
-2
@@ -91,7 +91,6 @@ private fun PostList(
|
||||
state = listState,
|
||||
) {
|
||||
itemsIndexed(posts, key = { _, item -> item.idHex }) { _, item ->
|
||||
// TODO: Find a way to integrate bookmark group callbacks into the note below
|
||||
NoteCompose(
|
||||
baseNote = item,
|
||||
modifier = Modifier.animateItem().animateContentSize(),
|
||||
@@ -101,7 +100,7 @@ private fun PostList(
|
||||
moreOptions = {
|
||||
BookmarkGroupItemOptions(
|
||||
baseNote = item,
|
||||
onDeleteBookmarkGroup = { onDeletePostBookmark(item.idHex) },
|
||||
onDeleteBookmarkItem = { onDeletePostBookmark(item.idHex) },
|
||||
accountViewModel = accountViewModel,
|
||||
nav = nav,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user