From 3215dd77d172d0b564a74653acd5c631209dc897 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Mon, 28 Feb 2022 17:47:56 +0530 Subject: [PATCH] common: add a comment count badge --- .../claw/common/posts/LobstersCard.kt | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/posts/LobstersCard.kt b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/posts/LobstersCard.kt index 057a55b1..b9e7eb06 100644 --- a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/posts/LobstersCard.kt +++ b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/posts/LobstersCard.kt @@ -11,6 +11,7 @@ import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.absoluteOffset import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height @@ -20,6 +21,8 @@ import androidx.compose.foundation.layout.width import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.ripple.rememberRipple +import androidx.compose.material3.Badge +import androidx.compose.material3.BadgedBox import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text @@ -85,6 +88,7 @@ fun LobstersCard( ) Divider(modifier = Modifier.width(48.dp)) CommentsButton( + commentCount = post.commentCount, modifier = Modifier.combinedClickable( role = Role.Button, @@ -167,9 +171,26 @@ fun SaveButton( @Composable fun CommentsButton( + commentCount: Int?, modifier: Modifier = Modifier, ) { - Box(modifier = modifier.padding(12.dp)) { + BadgedBox( + modifier = modifier.padding(12.dp), + badge = { + if (commentCount != null) { + Badge( + modifier = Modifier.absoluteOffset(x = (-8).dp), + containerColor = MaterialTheme.colorScheme.tertiaryContainer, + ) { + Text( + text = commentCount.toString(), + color = MaterialTheme.colorScheme.onTertiaryContainer, + style = MaterialTheme.typography.labelMedium, + ) + } + } + }, + ) { Icon( painter = commentIcon, tint = MaterialTheme.colorScheme.secondary, @@ -203,6 +224,6 @@ fun TagText( .padding(vertical = 4.dp, horizontal = 12.dp) .then(modifier), color = MaterialTheme.colorScheme.onTertiaryContainer, - style = MaterialTheme.typography.labelLarge + style = MaterialTheme.typography.labelLarge, ) }