Generalizing InnerReaction Row
This commit is contained in:
@@ -1,7 +1,6 @@
|
|||||||
package com.vitorpamplona.amethyst.ui.note
|
package com.vitorpamplona.amethyst.ui.note
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.util.Log
|
|
||||||
import androidx.compose.animation.AnimatedContent
|
import androidx.compose.animation.AnimatedContent
|
||||||
import androidx.compose.animation.AnimatedContentTransitionScope
|
import androidx.compose.animation.AnimatedContentTransitionScope
|
||||||
import androidx.compose.animation.ContentTransform
|
import androidx.compose.animation.ContentTransform
|
||||||
@@ -117,7 +116,6 @@ import java.math.BigDecimal
|
|||||||
import java.math.RoundingMode
|
import java.math.RoundingMode
|
||||||
import java.text.DecimalFormat
|
import java.text.DecimalFormat
|
||||||
import kotlin.math.roundToInt
|
import kotlin.math.roundToInt
|
||||||
import kotlin.time.measureTimedValue
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun ReactionsRow(
|
fun ReactionsRow(
|
||||||
@@ -151,6 +149,50 @@ private fun InnerReactionRow(
|
|||||||
wantsToSeeReactions: MutableState<Boolean>,
|
wantsToSeeReactions: MutableState<Boolean>,
|
||||||
accountViewModel: AccountViewModel,
|
accountViewModel: AccountViewModel,
|
||||||
nav: (String) -> Unit
|
nav: (String) -> Unit
|
||||||
|
) {
|
||||||
|
GenericInnerReactionRow(
|
||||||
|
showReactionDetail = showReactionDetail,
|
||||||
|
one = {
|
||||||
|
WatchReactionsZapsBoostsAndDisplayIfExists(baseNote) {
|
||||||
|
RenderShowIndividualReactionsButton(wantsToSeeReactions)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
two = {
|
||||||
|
ReplyReactionWithDialog(baseNote, MaterialTheme.colorScheme.placeholderText, accountViewModel, nav)
|
||||||
|
},
|
||||||
|
three = {
|
||||||
|
BoostWithDialog(
|
||||||
|
baseNote,
|
||||||
|
MaterialTheme.colorScheme.placeholderText,
|
||||||
|
accountViewModel,
|
||||||
|
nav
|
||||||
|
)
|
||||||
|
},
|
||||||
|
four = {
|
||||||
|
LikeReaction(baseNote, MaterialTheme.colorScheme.placeholderText, accountViewModel, nav)
|
||||||
|
},
|
||||||
|
five = {
|
||||||
|
ZapReaction(baseNote, MaterialTheme.colorScheme.placeholderText, accountViewModel, nav = nav)
|
||||||
|
},
|
||||||
|
six = {
|
||||||
|
ViewCountReaction(
|
||||||
|
note = baseNote,
|
||||||
|
grayTint = MaterialTheme.colorScheme.placeholderText,
|
||||||
|
viewCountColorFilter = MaterialTheme.colorScheme.placeholderTextColorFilter
|
||||||
|
)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
private fun GenericInnerReactionRow(
|
||||||
|
showReactionDetail: Boolean,
|
||||||
|
one: @Composable () -> Unit,
|
||||||
|
two: @Composable () -> Unit,
|
||||||
|
three: @Composable () -> Unit,
|
||||||
|
four: @Composable () -> Unit,
|
||||||
|
five: @Composable () -> Unit,
|
||||||
|
six: @Composable () -> Unit
|
||||||
) {
|
) {
|
||||||
Row(verticalAlignment = CenterVertically, modifier = ReactionRowHeight) {
|
Row(verticalAlignment = CenterVertically, modifier = ReactionRowHeight) {
|
||||||
if (showReactionDetail) {
|
if (showReactionDetail) {
|
||||||
@@ -158,14 +200,9 @@ private fun InnerReactionRow(
|
|||||||
verticalArrangement = Arrangement.Center,
|
verticalArrangement = Arrangement.Center,
|
||||||
modifier = ReactionRowExpandButton
|
modifier = ReactionRowExpandButton
|
||||||
) {
|
) {
|
||||||
val (value, elapsed) = measureTimedValue {
|
Row(verticalAlignment = CenterVertically) {
|
||||||
Row(verticalAlignment = CenterVertically) {
|
one()
|
||||||
WatchReactionsZapsBoostsAndDisplayIfExists(baseNote) {
|
|
||||||
RenderShowIndividualReactionsButton(wantsToSeeReactions)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Log.d("Rendering Metrics", "Reactions Button: ${baseNote.event?.content()?.split("\n")?.getOrNull(0)?.take(15)}.. $elapsed")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -173,69 +210,45 @@ private fun InnerReactionRow(
|
|||||||
verticalArrangement = Arrangement.Center,
|
verticalArrangement = Arrangement.Center,
|
||||||
modifier = remember { Modifier.weight(1f) }
|
modifier = remember { Modifier.weight(1f) }
|
||||||
) {
|
) {
|
||||||
val (value, elapsed) = measureTimedValue {
|
Row(verticalAlignment = CenterVertically) {
|
||||||
Row(verticalAlignment = CenterVertically) {
|
two()
|
||||||
ReplyReactionWithDialog(baseNote, MaterialTheme.colorScheme.placeholderText, accountViewModel, nav)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Log.d("Rendering Metrics", "Reaction Reply: ${baseNote.event?.content()?.split("\n")?.getOrNull(0)?.take(15)}.. $elapsed")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Column(
|
Column(
|
||||||
verticalArrangement = Arrangement.Center,
|
verticalArrangement = Arrangement.Center,
|
||||||
modifier = remember { Modifier.weight(1f) }
|
modifier = remember { Modifier.weight(1f) }
|
||||||
) {
|
) {
|
||||||
val (value, elapsed) = measureTimedValue {
|
Row(verticalAlignment = CenterVertically) {
|
||||||
Row(verticalAlignment = CenterVertically) {
|
three()
|
||||||
BoostWithDialog(
|
|
||||||
baseNote,
|
|
||||||
MaterialTheme.colorScheme.placeholderText,
|
|
||||||
accountViewModel,
|
|
||||||
nav
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Log.d("Rendering Metrics", "Reaction Boost: ${baseNote.event?.content()?.split("\n")?.getOrNull(0)?.take(15)}.. $elapsed")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Column(
|
Column(
|
||||||
verticalArrangement = Arrangement.Center,
|
verticalArrangement = Arrangement.Center,
|
||||||
modifier = remember { Modifier.weight(1f) }
|
modifier = remember { Modifier.weight(1f) }
|
||||||
) {
|
) {
|
||||||
val (value, elapsed) = measureTimedValue {
|
Row(verticalAlignment = CenterVertically) {
|
||||||
Row(verticalAlignment = CenterVertically) {
|
four()
|
||||||
LikeReaction(baseNote, MaterialTheme.colorScheme.placeholderText, accountViewModel, nav)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Log.d("Rendering Metrics", "Reaction Likes: ${baseNote.event?.content()?.split("\n")?.getOrNull(0)?.take(15)}.. $elapsed")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Column(
|
Column(
|
||||||
verticalArrangement = Arrangement.Center,
|
verticalArrangement = Arrangement.Center,
|
||||||
modifier = remember { Modifier.weight(1f) }
|
modifier = remember { Modifier.weight(1f) }
|
||||||
) {
|
) {
|
||||||
val (value, elapsed) = measureTimedValue {
|
Row(verticalAlignment = CenterVertically) {
|
||||||
Row(verticalAlignment = CenterVertically) {
|
five()
|
||||||
ZapReaction(baseNote, MaterialTheme.colorScheme.placeholderText, accountViewModel, nav = nav)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Log.d("Rendering Metrics", "Reaction Zaps: ${baseNote.event?.content()?.split("\n")?.getOrNull(0)?.take(15)}.. $elapsed")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Column(
|
Column(
|
||||||
verticalArrangement = Arrangement.Center,
|
verticalArrangement = Arrangement.Center,
|
||||||
modifier = remember { Modifier.weight(1f) }
|
modifier = remember { Modifier.weight(1f) }
|
||||||
) {
|
) {
|
||||||
val (value, elapsed) = measureTimedValue {
|
Row(verticalAlignment = CenterVertically) {
|
||||||
Row(verticalAlignment = CenterVertically) {
|
six()
|
||||||
ViewCountReaction(
|
|
||||||
note = baseNote,
|
|
||||||
grayTint = MaterialTheme.colorScheme.placeholderText,
|
|
||||||
viewCountColorFilter = MaterialTheme.colorScheme.placeholderTextColorFilter
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Log.d("Rendering Metrics", "Reaction Views: ${baseNote.event?.content()?.split("\n")?.getOrNull(0)?.take(15)}.. $elapsed")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -292,9 +305,11 @@ fun RenderZapRaiser(baseNote: Note, zapraiserAmount: Long, details: Boolean, acc
|
|||||||
}
|
}
|
||||||
|
|
||||||
LinearProgressIndicator(
|
LinearProgressIndicator(
|
||||||
modifier = Modifier
|
modifier = remember(details) {
|
||||||
.fillMaxWidth()
|
Modifier
|
||||||
.height(if (details) 24.dp else 4.dp),
|
.fillMaxWidth()
|
||||||
|
.height(if (details) 24.dp else 4.dp)
|
||||||
|
},
|
||||||
color = color,
|
color = color,
|
||||||
progress = zapraiserStatus.progress
|
progress = zapraiserStatus.progress
|
||||||
)
|
)
|
||||||
@@ -374,7 +389,7 @@ private fun RenderShowIndividualReactionsButton(wantsToSeeReactions: MutableStat
|
|||||||
},
|
},
|
||||||
modifier = Size20Modifier
|
modifier = Size20Modifier
|
||||||
) {
|
) {
|
||||||
Crossfade(targetState = wantsToSeeReactions.value) {
|
Crossfade(targetState = wantsToSeeReactions.value, label = "RenderShowIndividualReactionsButton") {
|
||||||
if (it) {
|
if (it) {
|
||||||
ExpandLessIcon(modifier = Size22Modifier)
|
ExpandLessIcon(modifier = Size22Modifier)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user