More Stability improvements to Compose

This commit is contained in:
Vitor Pamplona
2023-10-28 18:23:12 -04:00
parent 572c11e847
commit 3858c57816
4 changed files with 15 additions and 11 deletions
@@ -81,7 +81,9 @@ fun NewMediaView(uri: Uri, onClose: () -> Unit, postViewModel: NewMediaModel, ac
var showRelaysDialog by remember { var showRelaysDialog by remember {
mutableStateOf(false) mutableStateOf(false)
} }
var relayList = account.activeWriteRelays() var relayList = remember {
accountViewModel.account.activeWriteRelays().toImmutableList()
}
Dialog( Dialog(
onDismissRequest = { onClose() }, onDismissRequest = { onClose() },
@@ -172,8 +172,6 @@ fun NewPostView(
accountViewModel: AccountViewModel, accountViewModel: AccountViewModel,
nav: (String) -> Unit nav: (String) -> Unit
) { ) {
val account = remember(accountViewModel) { accountViewModel.account }
val postViewModel: NewPostViewModel = viewModel() val postViewModel: NewPostViewModel = viewModel()
postViewModel.wantsDirectMessage = enableMessageInterface postViewModel.wantsDirectMessage = enableMessageInterface
@@ -184,7 +182,9 @@ fun NewPostView(
var showRelaysDialog by remember { var showRelaysDialog by remember {
mutableStateOf(false) mutableStateOf(false)
} }
var relayList = account.activeWriteRelays() var relayList = remember {
accountViewModel.account.activeWriteRelays().toImmutableList()
}
LaunchedEffect(Unit) { LaunchedEffect(Unit) {
postViewModel.load(accountViewModel, baseReplyTo, quote) postViewModel.load(accountViewModel, baseReplyTo, quote)
@@ -387,10 +387,10 @@ fun NewPostView(
Row(verticalAlignment = Alignment.CenterVertically, modifier = Modifier.padding(vertical = Size5dp, horizontal = Size10dp)) { Row(verticalAlignment = Alignment.CenterVertically, modifier = Modifier.padding(vertical = Size5dp, horizontal = Size10dp)) {
ImageVideoDescription( ImageVideoDescription(
url, url,
account.defaultFileServer, accountViewModel.account.defaultFileServer,
onAdd = { alt, server, sensitiveContent -> onAdd = { alt, server, sensitiveContent ->
postViewModel.upload(url, alt, sensitiveContent, server, context, relayList) postViewModel.upload(url, alt, sensitiveContent, server, context, relayList)
account.changeDefaultFileServer(server) accountViewModel.account.changeDefaultFileServer(server)
}, },
onCancel = { onCancel = {
postViewModel.contentToAddUrl = null postViewModel.contentToAddUrl = null
@@ -414,7 +414,7 @@ fun NewPostView(
InvoiceRequest( InvoiceRequest(
lud16, lud16,
user.pubkeyHex, user.pubkeyHex,
account, accountViewModel.account,
stringResource(id = R.string.lightning_invoice), stringResource(id = R.string.lightning_invoice),
stringResource(id = R.string.lightning_create_and_add_invoice), stringResource(id = R.string.lightning_create_and_add_invoice),
onSuccess = { onSuccess = {
@@ -32,6 +32,8 @@ import com.vitorpamplona.amethyst.model.RelayInformation
import com.vitorpamplona.amethyst.service.Nip11Retriever import com.vitorpamplona.amethyst.service.Nip11Retriever
import com.vitorpamplona.amethyst.service.relays.Relay import com.vitorpamplona.amethyst.service.relays.Relay
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.toImmutableList
data class RelayList( data class RelayList(
val relay: Relay, val relay: Relay,
@@ -46,9 +48,9 @@ data class RelayInfoDialog(
@Composable @Composable
fun RelaySelectionDialog( fun RelaySelectionDialog(
preSelectedList: List<Relay>, preSelectedList: ImmutableList<Relay>,
onClose: () -> Unit, onClose: () -> Unit,
onPost: (list: List<Relay>) -> Unit, onPost: (list: ImmutableList<Relay>) -> Unit,
accountViewModel: AccountViewModel, accountViewModel: AccountViewModel,
nav: (String) -> Unit nav: (String) -> Unit
) { ) {
@@ -124,7 +126,7 @@ fun RelaySelectionDialog(
SaveButton( SaveButton(
onPost = { onPost = {
val selectedRelays = relays.filter { it.isSelected } val selectedRelays = relays.filter { it.isSelected }
onPost(selectedRelays.map { it.relay }) onPost(selectedRelays.map { it.relay }.toImmutableList())
onClose() onClose()
}, },
isActive = hasSelectedRelay isActive = hasSelectedRelay
@@ -819,7 +819,7 @@ fun RenderChannelThumb(baseNote: Note, channel: Channel, accountViewModel: Accou
@OptIn(ExperimentalLayoutApi::class) @OptIn(ExperimentalLayoutApi::class)
@Composable @Composable
fun Gallery(users: List<User>, accountViewModel: AccountViewModel) { fun Gallery(users: ImmutableList<User>, accountViewModel: AccountViewModel) {
FlowRow(verticalArrangement = Arrangement.Center) { FlowRow(verticalArrangement = Arrangement.Center) {
users.take(6).forEach { users.take(6).forEach {
ClickableUserPicture(it, Size35dp, accountViewModel) ClickableUserPicture(it, Size35dp, accountViewModel)