mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2024-09-30 00:40:49 +00:00
Merge pull request #480 from greenart7c3/main
added followed tags in profile screen
This commit is contained in:
commit
803b1e861e
@ -1,5 +1,6 @@
|
|||||||
package com.vitorpamplona.amethyst.ui.screen.loggedIn
|
package com.vitorpamplona.amethyst.ui.screen.loggedIn
|
||||||
|
|
||||||
|
import androidx.compose.foundation.clickable
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
@ -85,8 +86,10 @@ fun HashtagScreen(tag: String?, accountViewModel: AccountViewModel, nav: (String
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun HashtagHeader(tag: String, account: AccountViewModel) {
|
fun HashtagHeader(tag: String, account: AccountViewModel, onClick: () -> Unit = { }) {
|
||||||
Column() {
|
Column(
|
||||||
|
Modifier.clickable { onClick() }
|
||||||
|
) {
|
||||||
Column(modifier = Modifier.padding(12.dp)) {
|
Column(modifier = Modifier.padding(12.dp)) {
|
||||||
Row(verticalAlignment = Alignment.CenterVertically) {
|
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||||
Column(
|
Column(
|
||||||
|
@ -426,8 +426,9 @@ private fun CreateAndRenderPages(
|
|||||||
3 -> TabFollowers(baseUser, followersFeedViewModel, accountViewModel, nav)
|
3 -> TabFollowers(baseUser, followersFeedViewModel, accountViewModel, nav)
|
||||||
4 -> TabReceivedZaps(baseUser, zapFeedViewModel, accountViewModel, nav)
|
4 -> TabReceivedZaps(baseUser, zapFeedViewModel, accountViewModel, nav)
|
||||||
5 -> TabBookmarks(bookmarksFeedViewModel, accountViewModel, nav)
|
5 -> TabBookmarks(bookmarksFeedViewModel, accountViewModel, nav)
|
||||||
6 -> TabReports(baseUser, reportsFeedViewModel, accountViewModel, nav)
|
6 -> TabFollowedTags(baseUser, accountViewModel, nav)
|
||||||
7 -> TabRelays(baseUser, accountViewModel, nav)
|
7 -> TabReports(baseUser, reportsFeedViewModel, accountViewModel, nav)
|
||||||
|
8 -> TabRelays(baseUser, accountViewModel, nav)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -446,6 +447,7 @@ private fun CreateAndRenderTabs(
|
|||||||
{ FollowersTabHeader(baseUser) },
|
{ FollowersTabHeader(baseUser) },
|
||||||
{ ZapTabHeader(baseUser) },
|
{ ZapTabHeader(baseUser) },
|
||||||
{ BookmarkTabHeader(baseUser) },
|
{ BookmarkTabHeader(baseUser) },
|
||||||
|
{ FollowedTagsTabHeader(baseUser) },
|
||||||
{ ReportsTabHeader(baseUser) },
|
{ ReportsTabHeader(baseUser) },
|
||||||
{ RelaysTabHeader(baseUser) }
|
{ RelaysTabHeader(baseUser) }
|
||||||
)
|
)
|
||||||
@ -490,6 +492,25 @@ private fun ReportsTabHeader(baseUser: User) {
|
|||||||
Text(text = "$userReports ${stringResource(R.string.reports)}")
|
Text(text = "$userReports ${stringResource(R.string.reports)}")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
private fun FollowedTagsTabHeader(baseUser: User) {
|
||||||
|
var usertags by remember { mutableStateOf(0) }
|
||||||
|
|
||||||
|
LaunchedEffect(key1 = baseUser) {
|
||||||
|
launch(Dispatchers.IO) {
|
||||||
|
val contactList = baseUser?.latestContactList
|
||||||
|
|
||||||
|
val newTags = (contactList?.verifiedFollowTagSet?.count() ?: 0)
|
||||||
|
|
||||||
|
if (newTags != usertags) {
|
||||||
|
usertags = newTags
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Text(text = "$usertags ${stringResource(R.string.followed_tags)}")
|
||||||
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun BookmarkTabHeader(baseUser: User) {
|
private fun BookmarkTabHeader(baseUser: User) {
|
||||||
val userState by baseUser.live().bookmarks.observeAsState()
|
val userState by baseUser.live().bookmarks.observeAsState()
|
||||||
@ -1277,6 +1298,27 @@ fun TabNotesConversations(feedViewModel: NostrUserProfileConversationsFeedViewMo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun TabFollowedTags(baseUser: User, account: AccountViewModel, nav: (String) -> Unit) {
|
||||||
|
Column(Modifier.fillMaxHeight()) {
|
||||||
|
Column(
|
||||||
|
modifier = Modifier.padding(vertical = 0.dp)
|
||||||
|
) {
|
||||||
|
baseUser.latestContactList?.let {
|
||||||
|
it.unverifiedFollowTagSet().forEach { hashtag ->
|
||||||
|
HashtagHeader(
|
||||||
|
tag = hashtag,
|
||||||
|
account = account,
|
||||||
|
onClick = {
|
||||||
|
nav("Hashtag/$hashtag")
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun TabBookmarks(feedViewModel: NostrUserProfileBookmarksFeedViewModel, accountViewModel: AccountViewModel, nav: (String) -> Unit) {
|
fun TabBookmarks(feedViewModel: NostrUserProfileBookmarksFeedViewModel, accountViewModel: AccountViewModel, nav: (String) -> Unit) {
|
||||||
LaunchedEffect(Unit) {
|
LaunchedEffect(Unit) {
|
||||||
|
@ -467,4 +467,5 @@
|
|||||||
<string name="live_stream_is_offline">Livestream is Offline</string>
|
<string name="live_stream_is_offline">Livestream is Offline</string>
|
||||||
<string name="live_stream_has_ended">Livestream Ended</string>
|
<string name="live_stream_has_ended">Livestream Ended</string>
|
||||||
<string name="are_you_sure_you_want_to_log_out">Logging out deletes all your local information. Make sure to have your private keys backed up to avoid losing your account. Do you want to continue?</string>
|
<string name="are_you_sure_you_want_to_log_out">Logging out deletes all your local information. Make sure to have your private keys backed up to avoid losing your account. Do you want to continue?</string>
|
||||||
|
<string name="followed_tags">Followed Tags</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
Loading…
Reference in New Issue
Block a user