From ca03561df0d27c5113e29bff398aec120be19478 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Wed, 24 Apr 2024 23:55:09 +0530 Subject: [PATCH] fix(common): force titles in lists to be a single line --- CHANGELOG.md | 1 + .../claw/common/comments/CommentEntry.kt | 2 +- .../claw/common/posts/LobstersCard.kt | 26 ++++++++++++++++--- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index be75f676..d3037923 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Remove dividers between posts +- Post titles in lists are now truncated to be a single line ### Fixed diff --git a/common/src/main/kotlin/dev/msfjarvis/claw/common/comments/CommentEntry.kt b/common/src/main/kotlin/dev/msfjarvis/claw/common/comments/CommentEntry.kt index 7a9b7b1b..e7de53cd 100644 --- a/common/src/main/kotlin/dev/msfjarvis/claw/common/comments/CommentEntry.kt +++ b/common/src/main/kotlin/dev/msfjarvis/claw/common/comments/CommentEntry.kt @@ -69,7 +69,7 @@ internal fun CommentsHeader( modifier = Modifier.padding(16.dp).fillMaxWidth(), verticalArrangement = Arrangement.spacedBy(8.dp), ) { - PostTitle(title = post.title, isRead = false) + PostTitle(title = post.title, isRead = false, singleLineTitle = false) TagRow(tags = post.tags.toImmutableList()) Spacer(Modifier.height(4.dp)) diff --git a/common/src/main/kotlin/dev/msfjarvis/claw/common/posts/LobstersCard.kt b/common/src/main/kotlin/dev/msfjarvis/claw/common/posts/LobstersCard.kt index a5a56aa6..fe3c6c8e 100644 --- a/common/src/main/kotlin/dev/msfjarvis/claw/common/posts/LobstersCard.kt +++ b/common/src/main/kotlin/dev/msfjarvis/claw/common/posts/LobstersCard.kt @@ -48,6 +48,7 @@ import androidx.compose.ui.platform.testTag import androidx.compose.ui.semantics.Role import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import dev.msfjarvis.claw.common.theme.LobstersTheme import dev.msfjarvis.claw.common.ui.NetworkImage @@ -82,7 +83,12 @@ fun LobstersCard( horizontalArrangement = Arrangement.spacedBy(8.dp), verticalAlignment = Alignment.CenterVertically, ) { - PostDetails(post = post, isRead = localReadState, modifier = Modifier.weight(1f)) + PostDetails( + post = post, + isRead = localReadState, + singleLineTitle = true, + modifier = Modifier.weight(1f), + ) Column( modifier = Modifier.wrapContentHeight(), verticalArrangement = Arrangement.spacedBy(8.dp), @@ -116,9 +122,14 @@ fun LobstersCard( } @Composable -fun PostDetails(post: UIPost, isRead: Boolean, modifier: Modifier = Modifier) { +fun PostDetails( + post: UIPost, + isRead: Boolean, + singleLineTitle: Boolean, + modifier: Modifier = Modifier, +) { Column(modifier = modifier, verticalArrangement = Arrangement.spacedBy(8.dp)) { - PostTitle(title = post.title, isRead = isRead) + PostTitle(title = post.title, isRead = isRead, singleLineTitle = singleLineTitle) TagRow(tags = post.tags.toImmutableList()) Spacer(Modifier.height(4.dp)) Submitter( @@ -130,13 +141,20 @@ fun PostDetails(post: UIPost, isRead: Boolean, modifier: Modifier = Modifier) { } @Composable -internal fun PostTitle(title: String, isRead: Boolean, modifier: Modifier = Modifier) { +internal fun PostTitle( + title: String, + isRead: Boolean, + singleLineTitle: Boolean, + modifier: Modifier = Modifier, +) { Text( text = title, modifier = modifier, style = MaterialTheme.typography.titleMedium, fontWeight = if (isRead) FontWeight.Normal else FontWeight.Bold, color = MaterialTheme.colorScheme.onBackground, + maxLines = if (singleLineTitle) 1 else Int.MAX_VALUE, + overflow = TextOverflow.Ellipsis, ) }