Skip to content

Commit 18690d4

Browse files
committed
chore(fc): ellipsize ChatNode title when overflowing
Signed-off-by: Brandon McAnsh <git@bmcreations.dev>
1 parent 0713788 commit 18690d4

4 files changed

Lines changed: 16 additions & 4 deletions

File tree

flipchatApp/src/main/kotlin/xyz/flipchat/app/features/chat/conversation/ConversationTitle.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import androidx.compose.foundation.Image
44
import androidx.compose.foundation.layout.Arrangement
55
import androidx.compose.foundation.layout.Column
66
import androidx.compose.foundation.layout.Row
7+
import androidx.compose.foundation.layout.fillMaxWidth
78
import androidx.compose.foundation.layout.padding
89
import androidx.compose.foundation.layout.size
910
import androidx.compose.foundation.shape.CircleShape
@@ -17,6 +18,7 @@ import androidx.compose.ui.graphics.Color
1718
import androidx.compose.ui.graphics.ColorFilter
1819
import androidx.compose.ui.res.painterResource
1920
import androidx.compose.ui.res.pluralStringResource
21+
import androidx.compose.ui.text.style.TextOverflow
2022
import androidx.compose.ui.unit.dp
2123
import androidx.compose.ui.unit.sp
2224
import com.getcode.theme.CodeTheme
@@ -50,7 +52,10 @@ internal fun ConversationTitle(
5052
)
5153
Column {
5254
Text(
55+
modifier = Modifier.fillMaxWidth(),
5356
text = state.title,
57+
maxLines = 1,
58+
overflow = TextOverflow.Ellipsis,
5459
style = CodeTheme.typography.screenTitle.copy(fontSize = 18.sp)
5560
)
5661

ui/components/src/main/kotlin/com/getcode/ui/components/TitleBar.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ private fun TopAppBarBase(
171171
// Calculate the remaining space for the title region
172172
val leftIconWidth = leftIconPlaceable?.width ?: 0
173173
val rightContentsWidth = rightContentsPlaceable?.width ?: 0
174-
val remainingWidth = constraints.maxWidth - leftIconWidth - rightContentsWidth - contentPadding.calculateLeftPadding(layoutDirection).roundToPx() - contentPadding.calculateRightPadding(layoutDirection).roundToPx()
174+
val remainingWidth = constraints.maxWidth - leftIconWidth - rightContentsWidth - contentPadding.calculateLeftPadding(layoutDirection).roundToPx() - (contentPadding.calculateRightPadding(layoutDirection).roundToPx() * 2)
175175

176176
// Measure title region with the remaining space, if provided
177177
val titleRegionPlaceable = subcompose("titleRegion", titleRegion).firstOrNull()?.measure(

ui/components/src/main/kotlin/com/getcode/ui/components/chat/ChatNode.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,14 +105,16 @@ fun ChatNode(
105105

106106
Row(
107107
modifier = Modifier.fillMaxWidth(),
108-
verticalAlignment = Alignment.CenterVertically
108+
verticalAlignment = Alignment.CenterVertically,
109+
horizontalArrangement = Arrangement.spacedBy(CodeTheme.dimens.grid.x2)
109110
) {
110111
Text(
112+
modifier = Modifier.weight(1f),
111113
text = title,
112114
maxLines = 1,
115+
overflow = TextOverflow.Ellipsis,
113116
style = titleTextStyle
114117
)
115-
Spacer(Modifier.weight(1f))
116118
timestamp?.let {
117119
val isToday = DateUtils.isToday(it)
118120
Text(

ui/components/src/main/kotlin/com/getcode/ui/utils/PaddingValues.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import androidx.compose.foundation.layout.PaddingValues
44
import androidx.compose.runtime.Composable
55
import androidx.compose.ui.platform.LocalLayoutDirection
66
import androidx.compose.ui.unit.Dp
7+
import androidx.compose.ui.unit.LayoutDirection
78
import androidx.compose.ui.unit.dp
89

910
fun PaddingValues.calculateVerticalPadding() = calculateTopPadding() + calculateBottomPadding()
@@ -23,7 +24,11 @@ fun PaddingValues.calculateEndPadding(): Dp {
2324
@Composable
2425
fun PaddingValues.calculateHorizontalPadding(): Dp {
2526
val ldr = LocalLayoutDirection.current
26-
return calculateLeftPadding(ldr) + calculateRightPadding(ldr)
27+
return calculateHorizontalPadding(ldr)
28+
}
29+
30+
fun PaddingValues.calculateHorizontalPadding(layoutDirection: LayoutDirection): Dp {
31+
return calculateLeftPadding(layoutDirection) + calculateRightPadding(layoutDirection)
2732
}
2833

2934
@Composable

0 commit comments

Comments
 (0)