Fixes the inconsistency of button animations in the reaction row

pull/929/head
Vitor Pamplona 2024-06-19 08:48:41 -04:00
rodzic 6c137a5174
commit e9456af15c
2 zmienionych plików z 35 dodań i 16 usunięć

Wyświetl plik

@ -34,6 +34,7 @@ import androidx.compose.animation.slideInVertically
import androidx.compose.animation.slideOutVertically
import androidx.compose.animation.togetherWith
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.clickable
import androidx.compose.foundation.combinedClickable
import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.Arrangement
@ -51,7 +52,6 @@ import androidx.compose.material.ripple.rememberRipple
import androidx.compose.material3.Button
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.CircularProgressIndicator
import androidx.compose.material3.IconButton
import androidx.compose.material3.LinearProgressIndicator
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.ProgressIndicatorDefaults
@ -215,7 +215,7 @@ fun ShareReaction(
) {
val context = LocalContext.current
IconButton(
ClickableBox(
modifier = barChartModifier,
onClick = {
val sendIntent =
@ -412,7 +412,7 @@ private fun RenderShowIndividualReactionsButton(
wantsToSeeReactions: MutableState<Boolean>,
accountViewModel: AccountViewModel,
) {
IconButton(
ClickableBox(
onClick = { wantsToSeeReactions.value = !wantsToSeeReactions.value },
modifier = Size20Modifier,
) {
@ -609,6 +609,24 @@ private fun ReplyReactionWithDialog(
ReplyReaction(baseNote, grayTint, accountViewModel) { wantsToReplyTo = baseNote }
}
@Composable
fun ClickableBox(
modifier: Modifier,
onClick: () -> Unit,
content: @Composable () -> Unit,
) {
Box(
modifier.clickable(
role = Role.Button,
interactionSource = remember { MutableInteractionSource() },
indication = rememberRipple(bounded = false, radius = Size24dp),
onClick = onClick,
),
) {
content()
}
}
@Composable
fun ReplyReaction(
baseNote: Note,
@ -618,7 +636,7 @@ fun ReplyReaction(
iconSizeModifier: Modifier = Size19Modifier,
onPress: () -> Unit,
) {
IconButton(
ClickableBox(
modifier = iconSizeModifier,
onClick = {
if (baseNote.isDraft()) {
@ -626,15 +644,15 @@ fun ReplyReaction(
R.string.draft_note,
R.string.it_s_not_possible_to_reply_to_a_draft_note,
)
return@IconButton
}
if (accountViewModel.isWriteable()) {
onPress()
} else {
accountViewModel.toast(
R.string.read_only_user,
R.string.login_with_a_private_key_to_be_able_to_reply,
)
if (accountViewModel.isWriteable()) {
onPress()
} else {
accountViewModel.toast(
R.string.read_only_user,
R.string.login_with_a_private_key_to_be_able_to_reply,
)
}
}
},
) {
@ -747,9 +765,11 @@ fun BoostReaction(
) {
var wantsToBoost by remember { mutableStateOf(false) }
IconButton(
ClickableBox(
modifier = iconSizeModifier,
onClick = { accountViewModel.tryBoost(baseNote) { wantsToBoost = true } },
onClick = {
accountViewModel.tryBoost(baseNote) { wantsToBoost = true }
},
) {
ObserveBoostIcon(baseNote, accountViewModel) { hasBoosted ->
RepostedIcon(iconSizeModifier, if (hasBoosted) Color.Unspecified else grayTint)

Wyświetl plik

@ -27,7 +27,6 @@ import androidx.compose.foundation.layout.size
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ChevronRight
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
@ -88,7 +87,7 @@ fun ShouldShowExpandButton(
@Composable
fun ChatRelayExpandButton(onClick: () -> Unit) {
IconButton(
ClickableBox(
modifier = Size15Modifier,
onClick = onClick,
) {