Skip to content

Commit 34a0a3a

Browse files
committed
fix(message-list): added SenderRow and SubjectRow composables to fix long function issue.
1 parent 4d61077 commit 34a0a3a

File tree

1 file changed

+33
-15
lines changed
  • core/ui/compose/designsystem/src/main/kotlin/net/thunderbird/core/ui/compose/designsystem/organism/message

1 file changed

+33
-15
lines changed

core/ui/compose/designsystem/src/main/kotlin/net/thunderbird/core/ui/compose/designsystem/organism/message/MessageItem.kt

Lines changed: 33 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ private const val WEEK_DAYS = 7
8888
* Defaults to [MessageItemDefaults.defaultContentPadding].
8989
* @see MessageItemDefaults
9090
*/
91-
@Suppress("LongParameterList", "LongMethod")
91+
@Suppress("LongParameterList")
9292
@Composable
9393
internal fun MessageItem(
9494
leading: @Composable () -> Unit,
@@ -148,20 +148,8 @@ internal fun MessageItem(
148148
.weight(1f)
149149
.onPlaced { contentStart = it.positionInParent().x },
150150
) {
151-
Row(
152-
verticalAlignment = Alignment.CenterVertically,
153-
modifier = Modifier.defaultMinSize(
154-
minHeight = AccountIndicatorIcon.ACCOUNT_INDICATOR_DEFAULT_HEIGHT,
155-
),
156-
) {
157-
if (showAccountIndicator && accountIndicatorColor != null) {
158-
AccountIndicatorIcon(accountIndicatorColor)
159-
}
160-
sender()
161-
}
162-
CompositionLocalProvider(LocalContentColor provides colors.subjectColor) {
163-
subject()
164-
}
151+
SenderRow(showAccountIndicator, accountIndicatorColor) { sender() }
152+
SubjectRow(colors.subjectColor) { subject() }
165153
Spacer(modifier = Modifier.height(MainTheme.spacings.half))
166154
PreviewText(preview = preview, maxLines = maxPreviewLines)
167155
}
@@ -176,6 +164,36 @@ internal fun MessageItem(
176164
}
177165
}
178166

167+
@Composable
168+
private fun SenderRow(
169+
showAccountIndicator: Boolean,
170+
accountIndicatorColor: Color?,
171+
modifier: Modifier = Modifier,
172+
content: @Composable () -> Unit,
173+
) {
174+
Row(
175+
verticalAlignment = Alignment.CenterVertically,
176+
modifier = modifier.defaultMinSize(
177+
minHeight = AccountIndicatorIcon.ACCOUNT_INDICATOR_DEFAULT_HEIGHT,
178+
),
179+
) {
180+
if (showAccountIndicator && accountIndicatorColor != null) {
181+
AccountIndicatorIcon(accountIndicatorColor)
182+
}
183+
content()
184+
}
185+
}
186+
187+
@Composable
188+
private fun SubjectRow(
189+
subjectColor: Color,
190+
content: @Composable () -> Unit,
191+
) {
192+
CompositionLocalProvider(LocalContentColor provides subjectColor) {
193+
content()
194+
}
195+
}
196+
179197
@Composable
180198
private fun PreviewText(
181199
preview: CharSequence,

0 commit comments

Comments
 (0)