Moves relayToAdd from the Object to a param in the relay screen
This commit is contained in:
+2
-11
@@ -37,7 +37,6 @@ import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TopAppBar
|
||||
import androidx.compose.material3.TopAppBarDefaults
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.DisposableEffect
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.setValue
|
||||
@@ -52,7 +51,6 @@ import com.vitorpamplona.amethyst.R
|
||||
import com.vitorpamplona.amethyst.model.DefaultDMRelayList
|
||||
import com.vitorpamplona.amethyst.model.DefaultSearchRelayList
|
||||
import com.vitorpamplona.amethyst.ui.navigation.INav
|
||||
import com.vitorpamplona.amethyst.ui.navigation.rememberExtendedNav
|
||||
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
|
||||
import com.vitorpamplona.amethyst.ui.screen.loggedIn.CloseButton
|
||||
import com.vitorpamplona.amethyst.ui.screen.loggedIn.SaveButton
|
||||
@@ -65,20 +63,13 @@ import com.vitorpamplona.amethyst.ui.theme.grayText
|
||||
import com.vitorpamplona.ammolite.relays.Constants
|
||||
import com.vitorpamplona.ammolite.relays.RelayStat
|
||||
|
||||
object RelayToAdd {
|
||||
var relayToAdd: String = ""
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun AllRelayListView(
|
||||
relayToAdd: String? = null,
|
||||
accountViewModel: AccountViewModel,
|
||||
nav: INav,
|
||||
) {
|
||||
DisposableEffect(Unit) {
|
||||
onDispose { RelayToAdd.relayToAdd = "" }
|
||||
}
|
||||
|
||||
MappedAllRelayListView(RelayToAdd.relayToAdd, accountViewModel, rememberExtendedNav(nav, {}))
|
||||
MappedAllRelayListView(relayToAdd ?: "", accountViewModel, nav)
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
|
||||
@@ -286,6 +286,19 @@ fun AppNavigation(
|
||||
NIP47SetupScreen(accountViewModel, nav, nip47)
|
||||
}
|
||||
|
||||
composable(
|
||||
Route.EditRelays.route,
|
||||
content = {
|
||||
val relayToAdd = it.arguments?.getString("toAdd")
|
||||
|
||||
AllRelayListView(
|
||||
relayToAdd = relayToAdd,
|
||||
accountViewModel = accountViewModel,
|
||||
nav = nav,
|
||||
)
|
||||
},
|
||||
)
|
||||
|
||||
composable(
|
||||
Route.NewPost.route,
|
||||
Route.NewPost.arguments,
|
||||
@@ -321,16 +334,6 @@ fun AppNavigation(
|
||||
nav = nav,
|
||||
)
|
||||
}
|
||||
|
||||
composable(
|
||||
Route.EditRelays.route,
|
||||
content = {
|
||||
AllRelayListView(
|
||||
accountViewModel = accountViewModel,
|
||||
nav = nav,
|
||||
)
|
||||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -473,7 +473,7 @@ fun ListContent(
|
||||
accountViewModel = accountViewModel,
|
||||
onClick = {
|
||||
nav.closeDrawer()
|
||||
nav.nav(Route.EditRelays.route)
|
||||
nav.nav(Route.EditRelays.base)
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
@@ -68,13 +68,6 @@ sealed class Route(
|
||||
contentDescriptor = R.string.route_global,
|
||||
)
|
||||
|
||||
object EditRelays :
|
||||
Route(
|
||||
route = "EditRelays",
|
||||
icon = R.drawable.ic_globe,
|
||||
contentDescriptor = R.string.relays,
|
||||
)
|
||||
|
||||
object Search :
|
||||
Route(
|
||||
route = "Search",
|
||||
@@ -216,6 +209,21 @@ sealed class Route(
|
||||
icon = R.drawable.ic_settings,
|
||||
)
|
||||
|
||||
object EditRelays :
|
||||
Route(
|
||||
route = "EditRelays?toAdd={toAdd}",
|
||||
icon = R.drawable.ic_globe,
|
||||
contentDescriptor = R.string.relays,
|
||||
arguments =
|
||||
listOf(
|
||||
navArgument("toAdd") {
|
||||
type = NavType.StringType
|
||||
nullable = true
|
||||
defaultValue = null
|
||||
},
|
||||
).toImmutableList(),
|
||||
)
|
||||
|
||||
object NIP47Setup :
|
||||
Route(
|
||||
route = "NIP47Setup?nip47={nip47}",
|
||||
|
||||
@@ -45,7 +45,6 @@ import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.vitorpamplona.amethyst.R
|
||||
import com.vitorpamplona.amethyst.model.Note
|
||||
import com.vitorpamplona.amethyst.ui.actions.relays.RelayToAdd
|
||||
import com.vitorpamplona.amethyst.ui.components.ShowMoreButton
|
||||
import com.vitorpamplona.amethyst.ui.navigation.INav
|
||||
import com.vitorpamplona.amethyst.ui.navigation.Route
|
||||
@@ -62,6 +61,8 @@ import com.vitorpamplona.quartz.events.SearchRelayListEvent
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
import java.net.URLEncoder
|
||||
import java.nio.charset.StandardCharsets
|
||||
|
||||
@Composable
|
||||
fun DisplayRelaySet(
|
||||
@@ -292,13 +293,11 @@ private fun RelayOptionsAction(
|
||||
|
||||
if (isCurrentlyOnTheUsersList) {
|
||||
AddRelayButton {
|
||||
RelayToAdd.relayToAdd = relay
|
||||
nav.nav(Route.EditRelays.route)
|
||||
nav.nav(Route.EditRelays.base + "?toAdd=" + URLEncoder.encode(relay, StandardCharsets.UTF_8.toString()))
|
||||
}
|
||||
} else {
|
||||
RemoveRelayButton {
|
||||
RelayToAdd.relayToAdd = relay
|
||||
nav.nav(Route.EditRelays.route)
|
||||
nav.nav(Route.EditRelays.base + "?toAdd=" + URLEncoder.encode(relay, StandardCharsets.UTF_8.toString()))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+4
-5
@@ -28,7 +28,6 @@ import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import com.vitorpamplona.amethyst.ui.actions.relays.RelayToAdd
|
||||
import com.vitorpamplona.amethyst.ui.feeds.RefresheableBox
|
||||
import com.vitorpamplona.amethyst.ui.navigation.INav
|
||||
import com.vitorpamplona.amethyst.ui.navigation.Route
|
||||
@@ -36,6 +35,8 @@ import com.vitorpamplona.amethyst.ui.note.RelayCompose
|
||||
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
|
||||
import com.vitorpamplona.amethyst.ui.theme.DividerThickness
|
||||
import com.vitorpamplona.amethyst.ui.theme.FeedPadding
|
||||
import java.net.URLEncoder
|
||||
import java.nio.charset.StandardCharsets
|
||||
|
||||
@Composable
|
||||
fun RelayFeedView(
|
||||
@@ -58,12 +59,10 @@ fun RelayFeedView(
|
||||
item,
|
||||
accountViewModel = accountViewModel,
|
||||
onAddRelay = {
|
||||
RelayToAdd.relayToAdd = item.url
|
||||
nav.nav(Route.EditRelays.route)
|
||||
nav.nav(Route.EditRelays.base + "?toAdd=" + URLEncoder.encode(item.url, StandardCharsets.UTF_8.toString()))
|
||||
},
|
||||
onRemoveRelay = {
|
||||
RelayToAdd.relayToAdd = item.url
|
||||
nav.nav(Route.EditRelays.route)
|
||||
nav.nav(Route.EditRelays.base + "?toAdd=" + URLEncoder.encode(item.url, StandardCharsets.UTF_8.toString()))
|
||||
},
|
||||
)
|
||||
HorizontalDivider(
|
||||
|
||||
Reference in New Issue
Block a user