Adds replies and boosts to Stories
This commit is contained in:
@@ -57,6 +57,7 @@ import androidx.compose.ui.Modifier
|
|||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.graphics.ColorFilter
|
import androidx.compose.ui.graphics.ColorFilter
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
|
import androidx.compose.ui.platform.LocalDensity
|
||||||
import androidx.compose.ui.res.painterResource
|
import androidx.compose.ui.res.painterResource
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.semantics.Role
|
import androidx.compose.ui.semantics.Role
|
||||||
@@ -695,20 +696,21 @@ fun BoostReaction(
|
|||||||
}
|
}
|
||||||
) {
|
) {
|
||||||
BoostIcon(baseNote, iconSize, grayTint, accountViewModel)
|
BoostIcon(baseNote, iconSize, grayTint, accountViewModel)
|
||||||
}
|
|
||||||
|
|
||||||
if (wantsToBoost) {
|
if (wantsToBoost) {
|
||||||
BoostTypeChoicePopup(
|
BoostTypeChoicePopup(
|
||||||
baseNote,
|
baseNote,
|
||||||
accountViewModel,
|
iconSize,
|
||||||
onDismiss = {
|
accountViewModel,
|
||||||
wantsToBoost = false
|
onDismiss = {
|
||||||
},
|
wantsToBoost = false
|
||||||
onQuote = {
|
},
|
||||||
wantsToBoost = false
|
onQuote = {
|
||||||
onQuotePress()
|
wantsToBoost = false
|
||||||
}
|
onQuotePress()
|
||||||
)
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BoostText(baseNote, grayTint)
|
BoostText(baseNote, grayTint)
|
||||||
@@ -795,6 +797,7 @@ fun LikeReaction(
|
|||||||
if (wantsToReact) {
|
if (wantsToReact) {
|
||||||
ReactionChoicePopup(
|
ReactionChoicePopup(
|
||||||
baseNote,
|
baseNote,
|
||||||
|
iconSize,
|
||||||
accountViewModel,
|
accountViewModel,
|
||||||
onDismiss = {
|
onDismiss = {
|
||||||
wantsToReact = false
|
wantsToReact = false
|
||||||
@@ -1225,10 +1228,14 @@ private fun DrawViewCount(
|
|||||||
|
|
||||||
@OptIn(ExperimentalLayoutApi::class)
|
@OptIn(ExperimentalLayoutApi::class)
|
||||||
@Composable
|
@Composable
|
||||||
private fun BoostTypeChoicePopup(baseNote: Note, accountViewModel: AccountViewModel, onDismiss: () -> Unit, onQuote: () -> Unit) {
|
private fun BoostTypeChoicePopup(baseNote: Note, iconSize: Dp, accountViewModel: AccountViewModel, onDismiss: () -> Unit, onQuote: () -> Unit) {
|
||||||
|
val iconSizePx = with(LocalDensity.current) {
|
||||||
|
-iconSize.toPx().toInt()
|
||||||
|
}
|
||||||
|
|
||||||
Popup(
|
Popup(
|
||||||
alignment = Alignment.BottomCenter,
|
alignment = Alignment.BottomCenter,
|
||||||
offset = IntOffset(0, -50),
|
offset = IntOffset(0, iconSizePx),
|
||||||
onDismissRequest = { onDismiss() }
|
onDismissRequest = { onDismiss() }
|
||||||
) {
|
) {
|
||||||
FlowRow {
|
FlowRow {
|
||||||
@@ -1269,6 +1276,7 @@ private fun BoostTypeChoicePopup(baseNote: Note, accountViewModel: AccountViewMo
|
|||||||
@Composable
|
@Composable
|
||||||
fun ReactionChoicePopup(
|
fun ReactionChoicePopup(
|
||||||
baseNote: Note,
|
baseNote: Note,
|
||||||
|
iconSize: Dp,
|
||||||
accountViewModel: AccountViewModel,
|
accountViewModel: AccountViewModel,
|
||||||
onDismiss: () -> Unit,
|
onDismiss: () -> Unit,
|
||||||
onChangeAmount: () -> Unit
|
onChangeAmount: () -> Unit
|
||||||
@@ -1280,9 +1288,13 @@ fun ReactionChoicePopup(
|
|||||||
baseNote.reactedBy(account.userProfile()).toSet()
|
baseNote.reactedBy(account.userProfile()).toSet()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val iconSizePx = with(LocalDensity.current) {
|
||||||
|
-iconSize.toPx().toInt()
|
||||||
|
}
|
||||||
|
|
||||||
Popup(
|
Popup(
|
||||||
alignment = Alignment.BottomCenter,
|
alignment = Alignment.BottomCenter,
|
||||||
offset = IntOffset(0, -50),
|
offset = IntOffset(0, iconSizePx),
|
||||||
onDismissRequest = { onDismiss() }
|
onDismissRequest = { onDismiss() }
|
||||||
) {
|
) {
|
||||||
FlowRow(horizontalArrangement = Arrangement.Center) {
|
FlowRow(horizontalArrangement = Arrangement.Center) {
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ import com.vitorpamplona.amethyst.model.Note
|
|||||||
import com.vitorpamplona.amethyst.service.NostrVideoDataSource
|
import com.vitorpamplona.amethyst.service.NostrVideoDataSource
|
||||||
import com.vitorpamplona.amethyst.ui.actions.NewPostView
|
import com.vitorpamplona.amethyst.ui.actions.NewPostView
|
||||||
import com.vitorpamplona.amethyst.ui.components.ObserveDisplayNip05Status
|
import com.vitorpamplona.amethyst.ui.components.ObserveDisplayNip05Status
|
||||||
|
import com.vitorpamplona.amethyst.ui.note.BoostReaction
|
||||||
import com.vitorpamplona.amethyst.ui.note.FileHeaderDisplay
|
import com.vitorpamplona.amethyst.ui.note.FileHeaderDisplay
|
||||||
import com.vitorpamplona.amethyst.ui.note.FileStorageHeaderDisplay
|
import com.vitorpamplona.amethyst.ui.note.FileStorageHeaderDisplay
|
||||||
import com.vitorpamplona.amethyst.ui.note.HiddenNote
|
import com.vitorpamplona.amethyst.ui.note.HiddenNote
|
||||||
@@ -55,6 +56,7 @@ import com.vitorpamplona.amethyst.ui.note.NoteComposeReportState
|
|||||||
import com.vitorpamplona.amethyst.ui.note.NoteDropDownMenu
|
import com.vitorpamplona.amethyst.ui.note.NoteDropDownMenu
|
||||||
import com.vitorpamplona.amethyst.ui.note.NoteUsernameDisplay
|
import com.vitorpamplona.amethyst.ui.note.NoteUsernameDisplay
|
||||||
import com.vitorpamplona.amethyst.ui.note.RenderRelay
|
import com.vitorpamplona.amethyst.ui.note.RenderRelay
|
||||||
|
import com.vitorpamplona.amethyst.ui.note.ReplyReaction
|
||||||
import com.vitorpamplona.amethyst.ui.note.ViewCountReaction
|
import com.vitorpamplona.amethyst.ui.note.ViewCountReaction
|
||||||
import com.vitorpamplona.amethyst.ui.note.WatchForReports
|
import com.vitorpamplona.amethyst.ui.note.WatchForReports
|
||||||
import com.vitorpamplona.amethyst.ui.note.ZapReaction
|
import com.vitorpamplona.amethyst.ui.note.ZapReaction
|
||||||
@@ -449,13 +451,12 @@ fun ReactionsColumn(baseNote: Note, accountViewModel: AccountViewModel, nav: (St
|
|||||||
Spacer(modifier = Modifier.height(8.dp))
|
Spacer(modifier = Modifier.height(8.dp))
|
||||||
|
|
||||||
Column(horizontalAlignment = Alignment.CenterHorizontally, modifier = Modifier.padding(bottom = 75.dp, end = 20.dp)) {
|
Column(horizontalAlignment = Alignment.CenterHorizontally, modifier = Modifier.padding(bottom = 75.dp, end = 20.dp)) {
|
||||||
/*
|
ReplyReaction(baseNote, grayTint = MaterialTheme.colors.onBackground, accountViewModel, iconSize = 40.dp) {
|
||||||
ReplyReaction(baseNote, accountViewModel, iconSize = 40.dp) {
|
|
||||||
wantsToReplyTo = baseNote
|
wantsToReplyTo = baseNote
|
||||||
}
|
}
|
||||||
BoostReaction(baseNote, accountViewModel, iconSize = 40.dp) {
|
BoostReaction(baseNote, grayTint = MaterialTheme.colors.onBackground, accountViewModel, iconSize = 40.dp) {
|
||||||
wantsToQuote = baseNote
|
wantsToQuote = baseNote
|
||||||
}*/
|
}
|
||||||
LikeReaction(baseNote, grayTint = MaterialTheme.colors.onBackground, accountViewModel, nav, iconSize = 40.dp, heartSize = Size35dp, 28.sp)
|
LikeReaction(baseNote, grayTint = MaterialTheme.colors.onBackground, accountViewModel, nav, iconSize = 40.dp, heartSize = Size35dp, 28.sp)
|
||||||
ZapReaction(baseNote, grayTint = MaterialTheme.colors.onBackground, accountViewModel, iconSize = 40.dp, animationSize = Size35dp)
|
ZapReaction(baseNote, grayTint = MaterialTheme.colors.onBackground, accountViewModel, iconSize = 40.dp, animationSize = Size35dp)
|
||||||
ViewCountReaction(baseNote, grayTint = MaterialTheme.colors.onBackground, barChartSize = 39.dp, viewCountColorFilter = MaterialTheme.colors.onBackgroundColorFilter)
|
ViewCountReaction(baseNote, grayTint = MaterialTheme.colors.onBackground, barChartSize = 39.dp, viewCountColorFilter = MaterialTheme.colors.onBackgroundColorFilter)
|
||||||
|
|||||||
Reference in New Issue
Block a user