diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/RelayMembers.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/RelayMembers.kt index 83a12aec8..ee19fdba8 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/RelayMembers.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/RelayMembers.kt @@ -40,12 +40,14 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.model.Note import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.stringRes +import com.vitorpamplona.amethyst.ui.theme.ThemeComparisonColumn import com.vitorpamplona.quartz.nip43RelayMembers.addMember.RelayAddMemberEvent import com.vitorpamplona.quartz.nip43RelayMembers.list.RelayMembershipListEvent import com.vitorpamplona.quartz.nip43RelayMembers.removeMember.RelayRemoveMemberEvent @@ -139,8 +141,8 @@ private fun RelayMemberEventCard( icon: ImageVector, title: String, subtitle: String?, - nav: INav, - relayPubKey: String?, + nav: INav? = null, + relayPubKey: String? = null, ) { Column( modifier = @@ -175,3 +177,63 @@ private fun RelayMemberEventCard( } } } + +@Preview +@Composable +private fun RelayMembershipListCardPreview() { + ThemeComparisonColumn { + RelayMemberEventCard( + icon = Icons.Default.People, + title = "Relay membership list", + subtitle = "42 members", + ) + } +} + +@Preview +@Composable +private fun RelayAddMemberCardPreview() { + ThemeComparisonColumn { + RelayMemberEventCard( + icon = Icons.Default.PersonAdd, + title = "Member added to relay", + subtitle = "a1b2c3d4e5f6a7b8...", + ) + } +} + +@Preview +@Composable +private fun RelayRemoveMemberCardPreview() { + ThemeComparisonColumn { + RelayMemberEventCard( + icon = Icons.Default.PersonRemove, + title = "Member removed from relay", + subtitle = "a1b2c3d4e5f6a7b8...", + ) + } +} + +@Preview +@Composable +private fun RelayJoinRequestCardPreview() { + ThemeComparisonColumn { + RelayMemberEventCard( + icon = Icons.Default.PersonAdd, + title = "Relay join request", + subtitle = null, + ) + } +} + +@Preview +@Composable +private fun RelayLeaveRequestCardPreview() { + ThemeComparisonColumn { + RelayMemberEventCard( + icon = Icons.AutoMirrored.Filled.ExitToApp, + title = "Relay leave request", + subtitle = null, + ) + } +} diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/nip43/RelayMembersScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/nip43/RelayMembersScreen.kt index 5324046c0..22ee60b46 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/nip43/RelayMembersScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/nip43/RelayMembersScreen.kt @@ -62,12 +62,14 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.note.UserCompose import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.stringRes +import com.vitorpamplona.amethyst.ui.theme.ThemeComparisonColumn import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.relay.client.reqs.fetchAsFlow import com.vitorpamplona.quartz.nip01Core.relay.filters.Filter @@ -301,6 +303,66 @@ fun MembershipActions( } } +@Preview +@Composable +private fun MembershipActionsNotMemberPreview() { + ThemeComparisonColumn { + MembershipActions( + isMember = false, + isLoading = false, + joinRequestSent = false, + leaveRequestSent = false, + onJoinRequest = {}, + onLeaveRequest = {}, + ) + } +} + +@Preview +@Composable +private fun MembershipActionsIsMemberPreview() { + ThemeComparisonColumn { + MembershipActions( + isMember = true, + isLoading = false, + joinRequestSent = false, + leaveRequestSent = false, + onJoinRequest = {}, + onLeaveRequest = {}, + ) + } +} + +@Preview +@Composable +private fun MembershipActionsJoinSentPreview() { + ThemeComparisonColumn { + MembershipActions( + isMember = false, + isLoading = false, + joinRequestSent = true, + leaveRequestSent = false, + onJoinRequest = {}, + onLeaveRequest = {}, + ) + } +} + +@Preview +@Composable +private fun MembershipActionsLeaveSentPreview() { + ThemeComparisonColumn { + MembershipActions( + isMember = true, + isLoading = false, + joinRequestSent = false, + leaveRequestSent = true, + onJoinRequest = {}, + onLeaveRequest = {}, + ) + } +} + suspend fun sendJoinRequest( relay: NormalizedRelayUrl, accountViewModel: AccountViewModel,