When adding new relays, show full information dialog
This commit is contained in:
+5
-1
@@ -228,7 +228,11 @@ private fun ChannelMetadataScaffold(
|
||||
}
|
||||
|
||||
item {
|
||||
RelayUrlEditField { postViewModel.addHomeRelay(relaySetupInfoBuilder(it)) }
|
||||
RelayUrlEditField(
|
||||
onNewRelay = { postViewModel.addHomeRelay(relaySetupInfoBuilder(it)) },
|
||||
accountViewModel = accountViewModel,
|
||||
nav = nav,
|
||||
)
|
||||
|
||||
Spacer(modifier = DoubleVertSpacer)
|
||||
}
|
||||
|
||||
+5
-1
@@ -76,6 +76,10 @@ fun LazyListScope.renderBlockedItems(
|
||||
|
||||
item {
|
||||
Spacer(modifier = StdVertSpacer)
|
||||
RelayUrlEditField { postViewModel.addRelay(relaySetupInfoBuilder(it)) }
|
||||
RelayUrlEditField(
|
||||
onNewRelay = { postViewModel.addRelay(relaySetupInfoBuilder(it)) },
|
||||
accountViewModel = accountViewModel,
|
||||
nav = nav,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+5
-1
@@ -76,6 +76,10 @@ fun LazyListScope.renderBroadcastItems(
|
||||
|
||||
item {
|
||||
Spacer(modifier = StdVertSpacer)
|
||||
RelayUrlEditField { postViewModel.addRelay(relaySetupInfoBuilder(it)) }
|
||||
RelayUrlEditField(
|
||||
onNewRelay = { postViewModel.addRelay(relaySetupInfoBuilder(it)) },
|
||||
accountViewModel = accountViewModel,
|
||||
nav = nav,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -44,7 +44,8 @@ class RelaySuggestionState {
|
||||
val lower = input.lowercase()
|
||||
LocalCache.relayHints.relayDB
|
||||
.filter { _, relay -> relay.url.contains(lower) }
|
||||
.sortedBy { it.url }
|
||||
.map { relaySetupInfoBuilder(it) }
|
||||
.sortedByDescending { it.relayStat.receivedBytes }
|
||||
.take(20)
|
||||
} else {
|
||||
emptyList()
|
||||
|
||||
+16
-2
@@ -43,6 +43,10 @@ import androidx.compose.ui.text.input.KeyboardCapitalization
|
||||
import androidx.compose.ui.text.input.KeyboardType
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import com.vitorpamplona.amethyst.R
|
||||
import com.vitorpamplona.amethyst.ui.navigation.navs.EmptyNav
|
||||
import com.vitorpamplona.amethyst.ui.navigation.navs.INav
|
||||
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
|
||||
import com.vitorpamplona.amethyst.ui.screen.loggedIn.mockAccountViewModel
|
||||
import com.vitorpamplona.amethyst.ui.stringRes
|
||||
import com.vitorpamplona.amethyst.ui.theme.ButtonBorder
|
||||
import com.vitorpamplona.amethyst.ui.theme.Size10dp
|
||||
@@ -55,12 +59,20 @@ import com.vitorpamplona.quartz.nip01Core.relay.normalizer.RelayUrlNormalizer
|
||||
@Composable
|
||||
fun RelayUrlEditFieldPreview() {
|
||||
ThemeComparisonColumn {
|
||||
RelayUrlEditField {}
|
||||
RelayUrlEditField(
|
||||
onNewRelay = {},
|
||||
accountViewModel = mockAccountViewModel(),
|
||||
nav = EmptyNav(),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun RelayUrlEditField(onNewRelay: (NormalizedRelayUrl) -> Unit) {
|
||||
fun RelayUrlEditField(
|
||||
onNewRelay: (NormalizedRelayUrl) -> Unit,
|
||||
accountViewModel: AccountViewModel,
|
||||
nav: INav,
|
||||
) {
|
||||
var url by remember { mutableStateOf("") }
|
||||
val relaySuggestions = remember { RelaySuggestionState() }
|
||||
|
||||
@@ -129,6 +141,8 @@ fun RelayUrlEditField(onNewRelay: (NormalizedRelayUrl) -> Unit) {
|
||||
url = relay.url
|
||||
relaySuggestions.reset()
|
||||
},
|
||||
accountViewModel = accountViewModel,
|
||||
nav = nav,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+15
-30
@@ -20,36 +20,40 @@
|
||||
*/
|
||||
package com.vitorpamplona.amethyst.ui.screen.loggedIn.relays.common
|
||||
|
||||
import androidx.compose.foundation.clickable
|
||||
import android.R.attr.onClick
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.material3.HorizontalDivider
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import com.vitorpamplona.amethyst.ui.navigation.navs.INav
|
||||
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
|
||||
import com.vitorpamplona.amethyst.ui.theme.DividerThickness
|
||||
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl
|
||||
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.displayUrl
|
||||
|
||||
@Composable
|
||||
fun ShowRelaySuggestionList(
|
||||
relaySuggestions: RelaySuggestionState,
|
||||
onSelect: (NormalizedRelayUrl) -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
accountViewModel: AccountViewModel,
|
||||
nav: INav,
|
||||
) {
|
||||
val suggestions by relaySuggestions.results.collectAsStateWithLifecycle(emptyList())
|
||||
|
||||
if (suggestions.isNotEmpty()) {
|
||||
Column(modifier = modifier) {
|
||||
suggestions.forEachIndexed { index, relay ->
|
||||
RelayUrlLine(relay) { onSelect(relay) }
|
||||
suggestions.forEachIndexed { index, relayInfo ->
|
||||
BasicRelaySetupInfoClickableRow(
|
||||
item = relayInfo,
|
||||
loadProfilePicture = accountViewModel.settings.showProfilePictures(),
|
||||
loadRobohash = accountViewModel.settings.isNotPerformanceMode(),
|
||||
onClick = { onSelect(relayInfo.relay) },
|
||||
onDelete = null,
|
||||
accountViewModel = accountViewModel,
|
||||
nav = nav,
|
||||
)
|
||||
if (index < suggestions.lastIndex) {
|
||||
HorizontalDivider(thickness = DividerThickness)
|
||||
}
|
||||
@@ -57,22 +61,3 @@ fun ShowRelaySuggestionList(
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun RelayUrlLine(
|
||||
relay: NormalizedRelayUrl,
|
||||
onClick: () -> Unit,
|
||||
) {
|
||||
Text(
|
||||
text = relay.displayUrl(),
|
||||
fontWeight = FontWeight.Bold,
|
||||
maxLines = 1,
|
||||
overflow = TextOverflow.Ellipsis,
|
||||
style = MaterialTheme.typography.bodyMedium,
|
||||
modifier =
|
||||
Modifier
|
||||
.fillMaxWidth()
|
||||
.clickable(onClick = onClick)
|
||||
.padding(horizontal = 12.dp, vertical = 10.dp),
|
||||
)
|
||||
}
|
||||
|
||||
+5
-1
@@ -75,6 +75,10 @@ fun LazyListScope.renderDMItems(
|
||||
|
||||
item {
|
||||
Spacer(modifier = StdVertSpacer)
|
||||
RelayUrlEditField { postViewModel.addRelay(relaySetupInfoBuilder(it)) }
|
||||
RelayUrlEditField(
|
||||
onNewRelay = { postViewModel.addRelay(relaySetupInfoBuilder(it)) },
|
||||
accountViewModel = accountViewModel,
|
||||
nav = nav,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+5
-1
@@ -76,6 +76,10 @@ fun LazyListScope.renderFavoriteItems(
|
||||
|
||||
item {
|
||||
Spacer(modifier = StdVertSpacer)
|
||||
RelayUrlEditField { postViewModel.addRelay(relaySetupInfoBuilder(it)) }
|
||||
RelayUrlEditField(
|
||||
onNewRelay = { postViewModel.addRelay(relaySetupInfoBuilder(it)) },
|
||||
accountViewModel = accountViewModel,
|
||||
nav = nav,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+5
-1
@@ -76,6 +76,10 @@ fun LazyListScope.renderIndexerItems(
|
||||
|
||||
item {
|
||||
Spacer(modifier = StdVertSpacer)
|
||||
RelayUrlEditField { postViewModel.addRelay(relaySetupInfoBuilder(it)) }
|
||||
RelayUrlEditField(
|
||||
onNewRelay = { postViewModel.addRelay(relaySetupInfoBuilder(it)) },
|
||||
accountViewModel = accountViewModel,
|
||||
nav = nav,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+5
-1
@@ -75,6 +75,10 @@ fun LazyListScope.renderLocalItems(
|
||||
|
||||
item {
|
||||
Spacer(modifier = StdVertSpacer)
|
||||
RelayUrlEditField { postViewModel.addRelay(relaySetupInfoBuilder(it)) }
|
||||
RelayUrlEditField(
|
||||
onNewRelay = { postViewModel.addRelay(relaySetupInfoBuilder(it)) },
|
||||
accountViewModel = accountViewModel,
|
||||
nav = nav,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+5
-1
@@ -75,6 +75,10 @@ fun LazyListScope.renderPrivateOutboxItems(
|
||||
|
||||
item {
|
||||
Spacer(modifier = StdVertSpacer)
|
||||
RelayUrlEditField { postViewModel.addRelay(relaySetupInfoBuilder(it)) }
|
||||
RelayUrlEditField(
|
||||
onNewRelay = { postViewModel.addRelay(relaySetupInfoBuilder(it)) },
|
||||
accountViewModel = accountViewModel,
|
||||
nav = nav,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+10
-2
@@ -118,7 +118,11 @@ fun LazyListScope.renderNip65HomeItems(
|
||||
|
||||
item {
|
||||
Spacer(modifier = StdVertSpacer)
|
||||
RelayUrlEditField { postViewModel.addHomeRelay(relaySetupInfoBuilder(it)) }
|
||||
RelayUrlEditField(
|
||||
onNewRelay = { postViewModel.addHomeRelay(relaySetupInfoBuilder(it)) },
|
||||
accountViewModel = accountViewModel,
|
||||
nav = nav,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -139,6 +143,10 @@ fun LazyListScope.renderNip65NotifItems(
|
||||
|
||||
item {
|
||||
Spacer(modifier = StdVertSpacer)
|
||||
RelayUrlEditField { postViewModel.addNotifRelay(relaySetupInfoBuilder(it)) }
|
||||
RelayUrlEditField(
|
||||
onNewRelay = { postViewModel.addNotifRelay(relaySetupInfoBuilder(it)) },
|
||||
accountViewModel = accountViewModel,
|
||||
nav = nav,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+5
-1
@@ -76,6 +76,10 @@ fun LazyListScope.renderProxyItems(
|
||||
|
||||
item {
|
||||
Spacer(modifier = StdVertSpacer)
|
||||
RelayUrlEditField { postViewModel.addRelay(relaySetupInfoBuilder(it)) }
|
||||
RelayUrlEditField(
|
||||
onNewRelay = { postViewModel.addRelay(relaySetupInfoBuilder(it)) },
|
||||
accountViewModel = accountViewModel,
|
||||
nav = nav,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+5
-1
@@ -76,6 +76,10 @@ fun LazyListScope.renderSearchItems(
|
||||
|
||||
item {
|
||||
Spacer(modifier = StdVertSpacer)
|
||||
RelayUrlEditField { postViewModel.addRelay(relaySetupInfoBuilder(it)) }
|
||||
RelayUrlEditField(
|
||||
onNewRelay = { postViewModel.addRelay(relaySetupInfoBuilder(it)) },
|
||||
accountViewModel = accountViewModel,
|
||||
nav = nav,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+5
-1
@@ -76,6 +76,10 @@ fun LazyListScope.renderTrustedItems(
|
||||
|
||||
item {
|
||||
Spacer(modifier = StdVertSpacer)
|
||||
RelayUrlEditField { postViewModel.addRelay(relaySetupInfoBuilder(it)) }
|
||||
RelayUrlEditField(
|
||||
onNewRelay = { postViewModel.addRelay(relaySetupInfoBuilder(it)) },
|
||||
accountViewModel = accountViewModel,
|
||||
nav = nav,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user