UI Improvements for Hidden Words

This commit is contained in:
Vitor Pamplona
2023-09-24 18:36:43 -04:00
parent 03654b5ebd
commit ee30ff28f6
3 changed files with 27 additions and 13 deletions

View File

@ -2250,14 +2250,23 @@ fun RemoveButton(onClick: () -> Unit) {
} }
@Composable @Composable
fun AddButton(text: Int = R.string.add, onClick: () -> Unit) { fun AddButton(
text: Int = R.string.add,
isActive: Boolean = true,
modifier: Modifier = Modifier.padding(start = 3.dp),
onClick: () -> Unit
) {
Button( Button(
modifier = Modifier.padding(start = 3.dp), modifier = modifier,
onClick = onClick, onClick = {
if (isActive) {
onClick()
}
},
shape = ButtonBorder, shape = ButtonBorder,
colors = ButtonDefaults colors = ButtonDefaults
.buttonColors( .buttonColors(
backgroundColor = MaterialTheme.colors.primary backgroundColor = if (isActive) MaterialTheme.colors.primary else Color.Gray
), ),
contentPadding = PaddingValues(vertical = 0.dp, horizontal = 16.dp) contentPadding = PaddingValues(vertical = 0.dp, horizontal = 16.dp)
) { ) {

View File

@ -50,7 +50,7 @@ import androidx.lifecycle.map
import androidx.lifecycle.viewmodel.compose.viewModel import androidx.lifecycle.viewmodel.compose.viewModel
import com.vitorpamplona.amethyst.LocalPreferences import com.vitorpamplona.amethyst.LocalPreferences
import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.R
import com.vitorpamplona.amethyst.ui.navigation.SendButton import com.vitorpamplona.amethyst.ui.note.AddButton
import com.vitorpamplona.amethyst.ui.screen.NostrHiddenAccountsFeedViewModel import com.vitorpamplona.amethyst.ui.screen.NostrHiddenAccountsFeedViewModel
import com.vitorpamplona.amethyst.ui.screen.NostrHiddenWordsFeedViewModel import com.vitorpamplona.amethyst.ui.screen.NostrHiddenWordsFeedViewModel
import com.vitorpamplona.amethyst.ui.screen.NostrSpammerAccountsFeedViewModel import com.vitorpamplona.amethyst.ui.screen.NostrSpammerAccountsFeedViewModel
@ -59,6 +59,8 @@ import com.vitorpamplona.amethyst.ui.screen.RefreshingFeedUserFeedView
import com.vitorpamplona.amethyst.ui.screen.StringFeedView import com.vitorpamplona.amethyst.ui.screen.StringFeedView
import com.vitorpamplona.amethyst.ui.screen.UserFeedViewModel import com.vitorpamplona.amethyst.ui.screen.UserFeedViewModel
import com.vitorpamplona.amethyst.ui.theme.ButtonBorder import com.vitorpamplona.amethyst.ui.theme.ButtonBorder
import com.vitorpamplona.amethyst.ui.theme.HorzPadding
import com.vitorpamplona.amethyst.ui.theme.Size10dp
import com.vitorpamplona.amethyst.ui.theme.StdPadding import com.vitorpamplona.amethyst.ui.theme.StdPadding
import com.vitorpamplona.amethyst.ui.theme.TabRowHeight import com.vitorpamplona.amethyst.ui.theme.TabRowHeight
import com.vitorpamplona.amethyst.ui.theme.placeholderText import com.vitorpamplona.amethyst.ui.theme.placeholderText
@ -202,7 +204,7 @@ private fun HiddenWordsFeed(
@Composable @Composable
private fun AddMuteWordTextField(accountViewModel: AccountViewModel) { private fun AddMuteWordTextField(accountViewModel: AccountViewModel) {
Row { Row(modifier = Modifier.padding(vertical = Size10dp)) {
val currentWordToAdd = remember { val currentWordToAdd = remember {
mutableStateOf("") mutableStateOf("")
} }
@ -229,17 +231,17 @@ private fun AddMuteWordTextField(accountViewModel: AccountViewModel) {
), ),
keyboardActions = KeyboardActions( keyboardActions = KeyboardActions(
onSend = { onSend = {
accountViewModel.hide(currentWordToAdd.value) if (hasChanged) {
currentWordToAdd.value = "" accountViewModel.hide(currentWordToAdd.value)
currentWordToAdd.value = ""
}
} }
), ),
singleLine = true, singleLine = true,
trailingIcon = { trailingIcon = {
if (hasChanged) { AddButton(isActive = hasChanged, modifier = HorzPadding) {
SendButton { accountViewModel.hide(currentWordToAdd.value)
accountViewModel.hide(currentWordToAdd.value) currentWordToAdd.value = ""
currentWordToAdd.value = ""
}
} }
} }
) )

View File

@ -76,6 +76,9 @@ val StdPadding = Modifier.padding(10.dp)
val HalfHorzPadding = Modifier.padding(horizontal = 5.dp) val HalfHorzPadding = Modifier.padding(horizontal = 5.dp)
val HalfVertPadding = Modifier.padding(vertical = 5.dp) val HalfVertPadding = Modifier.padding(vertical = 5.dp)
val HorzPadding = Modifier.padding(horizontal = 10.dp)
val VertPadding = Modifier.padding(vertical = 10.dp)
val Size6Modifier = Modifier.size(6.dp) val Size6Modifier = Modifier.size(6.dp)
val Size10Modifier = Modifier.size(10.dp) val Size10Modifier = Modifier.size(10.dp)
val Size15Modifier = Modifier.size(15.dp) val Size15Modifier = Modifier.size(15.dp)