Improves rendering of messages in the Notification feed

This commit is contained in:
Vitor Pamplona 2023-05-25 21:08:20 -04:00
parent 56a68b9100
commit fa4463f1d7

View File

@ -35,9 +35,14 @@ import kotlinx.coroutines.launch
@OptIn(ExperimentalFoundationApi::class)
@Composable
fun MessageSetCompose(messageSetCard: MessageSetCard, routeForLastRead: String, accountViewModel: AccountViewModel, nav: (String) -> Unit) {
val noteState by messageSetCard.note.live().metadata.observeAsState()
val baseNote = remember { messageSetCard.note }
val noteState by baseNote.live().metadata.observeAsState()
val note = remember(noteState) { noteState?.note }
val accountState by accountViewModel.accountLiveData.observeAsState()
val loggedIn = remember(accountState) { accountState?.account?.userProfile() } ?: return
var popupExpanded by remember { mutableStateOf(false) }
val scope = rememberCoroutineScope()
@ -78,8 +83,8 @@ fun MessageSetCompose(messageSetCard: MessageSetCard, routeForLastRead: String,
onClick = {
scope.launch {
routeFor(
note,
accountViewModel.userProfile()
baseNote,
loggedIn
)?.let { nav(it) }
}
},
@ -90,18 +95,11 @@ fun MessageSetCompose(messageSetCard: MessageSetCard, routeForLastRead: String,
Column(columnModifier) {
Row(Modifier.fillMaxWidth()) {
Box(modifier = remember { Modifier.width(55.dp).padding(top = 5.dp, end = 5.dp) }) {
Icon(
painter = painterResource(R.drawable.ic_dm),
null,
modifier = remember { Modifier.size(16.dp).align(Alignment.TopEnd) },
tint = MaterialTheme.colors.primary
)
}
MessageIcon()
Column(modifier = remember { Modifier.padding(start = 10.dp) }) {
NoteCompose(
baseNote = messageSetCard.note,
baseNote = baseNote,
routeForLastRead = null,
isBoostedNote = true,
addMarginTop = false,
@ -116,3 +114,25 @@ fun MessageSetCompose(messageSetCard: MessageSetCard, routeForLastRead: String,
}
}
}
@Composable
private fun MessageIcon() {
Box(
modifier = remember {
Modifier
.width(55.dp)
.padding(top = 5.dp, end = 5.dp)
}
) {
Icon(
painter = painterResource(R.drawable.ic_dm),
null,
modifier = remember {
Modifier
.size(16.dp)
.align(Alignment.TopEnd)
},
tint = MaterialTheme.colors.primary
)
}
}