Skip to content

Commit e248682

Browse files
committed
feat(message-list): change MessageListItem to expose onLeadingClick
# Conflicts: # legacy/ui/legacy/src/main/java/com/fsck/k9/ui/messagelist/item/MessageItemContent.kt
1 parent f9b7c54 commit e248682

File tree

13 files changed

+52
-3
lines changed

13 files changed

+52
-3
lines changed

app-ui-catalog/src/main/kotlin/net/thunderbird/ui/catalog/ui/page/organism/items/message/CatalogMessageItems.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,9 @@ private fun ColumnScope.CatalogNewMessageItem(
230230
snackbarHostState.showSnackbar("Long clicked!")
231231
}
232232
},
233+
onLeadingClick = {
234+
selected = !selected
235+
},
233236
onFavouriteChange = { favourite = it },
234237
modifier = Modifier.fillMaxWidth(),
235238
selected = selected,
@@ -282,6 +285,9 @@ private fun ColumnScope.CatalogUnreadMessageItem(
282285
snackbarHostState.showSnackbar("Long clicked!")
283286
}
284287
},
288+
onLeadingClick = {
289+
selected = !selected
290+
},
285291
onFavouriteChange = { favourite = it },
286292
modifier = Modifier.fillMaxWidth(),
287293
selected = selected,
@@ -334,6 +340,9 @@ private fun ColumnScope.CatalogReadMessageItem(
334340
snackbarHostState.showSnackbar("Long clicked!")
335341
}
336342
},
343+
onLeadingClick = {
344+
selected = !selected
345+
},
337346
onFavouriteChange = { favourite = it },
338347
modifier = Modifier.fillMaxWidth(),
339348
selected = selected,
@@ -386,6 +395,9 @@ private fun ColumnScope.CatalogActiveMessageItem(
386395
snackbarHostState.showSnackbar("Long clicked!")
387396
}
388397
},
398+
onLeadingClick = {
399+
selected = !selected
400+
},
389401
onFavouriteChange = { favourite = it },
390402
modifier = Modifier.fillMaxWidth(),
391403
selected = selected,
@@ -436,6 +448,9 @@ private fun ColumnScope.CatalogJunkMessageItem(
436448
snackbarHostState.showSnackbar("Long clicked!")
437449
}
438450
},
451+
onLeadingClick = {
452+
selected = !selected
453+
},
439454
modifier = Modifier.fillMaxWidth(),
440455
selected = selected,
441456
swapSenderWithSubject = config.swapSenderAndSubject,

core/ui/compose/designsystem/src/debug/kotlin/net/thunderbird/core/ui/compose/designsystem/organism/message/ActiveMessageItemPreview.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ private fun PreviewDefault(
133133
},
134134
onClick = { },
135135
onLongClick = { },
136+
onLeadingClick = { },
136137
onFavouriteChange = { },
137138
modifier = Modifier.padding(MainTheme.spacings.double),
138139
hasAttachments = params.hasAttachments,
@@ -158,6 +159,7 @@ private fun PreviewCompact(
158159
avatar = { },
159160
onClick = { },
160161
onLongClick = { },
162+
onLeadingClick = { },
161163
onFavouriteChange = { },
162164
modifier = Modifier.padding(MainTheme.spacings.double),
163165
hasAttachments = params.hasAttachments,
@@ -184,6 +186,7 @@ private fun PreviewRelaxed(
184186
avatar = { },
185187
onClick = { },
186188
onLongClick = { },
189+
onLeadingClick = { },
187190
onFavouriteChange = {},
188191
modifier = Modifier.padding(MainTheme.spacings.double),
189192
hasAttachments = params.hasAttachments,

core/ui/compose/designsystem/src/debug/kotlin/net/thunderbird/core/ui/compose/designsystem/organism/message/JunkMessageItemPreview.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ private fun PreviewDefault(
128128
},
129129
onClick = { },
130130
onLongClick = { },
131+
onLeadingClick = { },
131132
modifier = Modifier.padding(MainTheme.spacings.double),
132133
hasAttachments = params.hasAttachments,
133134
selected = params.selected,
@@ -151,6 +152,7 @@ private fun PreviewCompact(
151152
avatar = { },
152153
onClick = { },
153154
onLongClick = { },
155+
onLeadingClick = { },
154156
modifier = Modifier.padding(MainTheme.spacings.double),
155157
hasAttachments = params.hasAttachments,
156158
selected = params.selected,
@@ -175,6 +177,7 @@ private fun PreviewRelaxed(
175177
avatar = { },
176178
onClick = { },
177179
onLongClick = { },
180+
onLeadingClick = { },
178181
modifier = Modifier.padding(MainTheme.spacings.double),
179182
hasAttachments = params.hasAttachments,
180183
selected = params.selected,

core/ui/compose/designsystem/src/debug/kotlin/net/thunderbird/core/ui/compose/designsystem/organism/message/MessageItemPreview.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ private fun PreviewDefault(
114114
receivedAt = params.receivedAt,
115115
onClick = { },
116116
onLongClick = { },
117+
onLeadingClick = { },
117118
modifier = Modifier.padding(MainTheme.spacings.double),
118119
hasAttachments = params.hasAttachments,
119120
selected = params.selected,
@@ -151,6 +152,7 @@ private fun PreviewCompact(
151152
receivedAt = params.receivedAt,
152153
onClick = { },
153154
onLongClick = { },
155+
onLeadingClick = { },
154156
modifier = Modifier.padding(MainTheme.spacings.double),
155157
hasAttachments = params.hasAttachments,
156158
selected = params.selected,
@@ -189,6 +191,7 @@ private fun PreviewRelaxed(
189191
receivedAt = params.receivedAt,
190192
onClick = { },
191193
onLongClick = { },
194+
onLeadingClick = { },
192195
modifier = Modifier.padding(MainTheme.spacings.double),
193196
hasAttachments = params.hasAttachments,
194197
selected = params.selected,

core/ui/compose/designsystem/src/debug/kotlin/net/thunderbird/core/ui/compose/designsystem/organism/message/NewMessageItemPreview.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ private fun PreviewDefault(
133133
},
134134
onClick = { },
135135
onLongClick = { },
136+
onLeadingClick = { },
136137
onFavouriteChange = { },
137138
modifier = Modifier.padding(MainTheme.spacings.double),
138139
hasAttachments = params.hasAttachments,
@@ -158,6 +159,7 @@ private fun PreviewCompact(
158159
avatar = { },
159160
onClick = { },
160161
onLongClick = { },
162+
onLeadingClick = { },
161163
onFavouriteChange = { },
162164
modifier = Modifier.padding(MainTheme.spacings.double),
163165
hasAttachments = params.hasAttachments,
@@ -184,6 +186,7 @@ private fun PreviewRelaxed(
184186
avatar = { },
185187
onClick = { },
186188
onLongClick = { },
189+
onLeadingClick = { },
187190
onFavouriteChange = { },
188191
modifier = Modifier.padding(MainTheme.spacings.double),
189192
hasAttachments = params.hasAttachments,

core/ui/compose/designsystem/src/debug/kotlin/net/thunderbird/core/ui/compose/designsystem/organism/message/ReadMessageItemPreview.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ private fun PreviewDefault(
133133
},
134134
onClick = { },
135135
onLongClick = { },
136+
onLeadingClick = { },
136137
onFavouriteChange = { },
137138
modifier = Modifier.padding(MainTheme.spacings.double),
138139
hasAttachments = params.hasAttachments,
@@ -158,6 +159,7 @@ private fun PreviewCompact(
158159
avatar = { },
159160
onClick = { },
160161
onLongClick = { },
162+
onLeadingClick = { },
161163
onFavouriteChange = { },
162164
modifier = Modifier.padding(MainTheme.spacings.double),
163165
hasAttachments = params.hasAttachments,
@@ -184,6 +186,7 @@ private fun PreviewRelaxed(
184186
avatar = { },
185187
onClick = { },
186188
onLongClick = { },
189+
onLeadingClick = { },
187190
onFavouriteChange = { },
188191
modifier = Modifier.padding(MainTheme.spacings.double),
189192
hasAttachments = params.hasAttachments,

core/ui/compose/designsystem/src/debug/kotlin/net/thunderbird/core/ui/compose/designsystem/organism/message/UnreadMessageItemPreview.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ private fun PreviewDefault(
133133
},
134134
onClick = { },
135135
onLongClick = { },
136+
onLeadingClick = { },
136137
onFavouriteChange = { },
137138
modifier = Modifier.padding(MainTheme.spacings.double),
138139
hasAttachments = params.hasAttachments,
@@ -158,6 +159,7 @@ private fun PreviewCompact(
158159
avatar = { },
159160
onClick = { },
160161
onLongClick = { },
162+
onLeadingClick = { },
161163
onFavouriteChange = { },
162164
modifier = Modifier.padding(MainTheme.spacings.double),
163165
hasAttachments = params.hasAttachments,
@@ -184,6 +186,7 @@ private fun PreviewRelaxed(
184186
avatar = { },
185187
onClick = { },
186188
onLongClick = { },
189+
onLeadingClick = { },
187190
onFavouriteChange = { },
188191
modifier = Modifier.padding(MainTheme.spacings.double),
189192
hasAttachments = params.hasAttachments,

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import net.thunderbird.core.ui.compose.designsystem.molecule.message.MessageItem
2121
* @param avatar A composable function to display the sender's avatar.
2222
* @param onClick A lambda function to be invoked when the message item is clicked.
2323
* @param onLongClick A lambda function to be invoked when the message item is long-clicked.
24+
* @param onLeadingClick A lambda function to be invoked when the leading avatar is clicked.
2425
* @param onFavouriteChange A lambda function to be invoked when the favourite button is clicked.
2526
* @param modifier A [Modifier] to be applied to the message item.
2627
* @param hasAttachments Whether the message has attachments. Defaults to `false`.
@@ -42,6 +43,7 @@ fun ActiveMessageItem(
4243
avatar: @Composable () -> Unit,
4344
onClick: () -> Unit,
4445
onLongClick: () -> Unit,
46+
onLeadingClick: () -> Unit,
4547
onFavouriteChange: (Boolean) -> Unit,
4648
modifier: Modifier = Modifier,
4749
favourite: Boolean = false,
@@ -75,6 +77,7 @@ fun ActiveMessageItem(
7577
receivedAt = receivedAt,
7678
onClick = onClick,
7779
onLongClick = onLongClick,
80+
onLeadingClick = onLeadingClick,
7881
colors = if (selected) {
7982
MessageItemDefaults.selectedMessageItemColors()
8083
} else {

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ fun JunkMessageItem(
2020
avatar: @Composable () -> Unit,
2121
onClick: () -> Unit,
2222
onLongClick: () -> Unit,
23+
onLeadingClick: () -> Unit,
2324
modifier: Modifier = Modifier,
2425
hasAttachments: Boolean = false,
2526
threadCount: Int = 0,
@@ -56,6 +57,7 @@ fun JunkMessageItem(
5657
receivedAt = receivedAt,
5758
onClick = onClick,
5859
onLongClick = onLongClick,
60+
onLeadingClick = onLeadingClick,
5961
colors = if (selected) {
6062
MessageItemDefaults.selectedMessageItemColors(
6163
containerColor = MainTheme.colors.errorContainer,

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ private const val WEEK_DAYS = 7
7070
* @param receivedAt The date and time the message was received.
7171
* @param onClick A callback function to be invoked when the message item is clicked.
7272
* @param onLongClick A lambda function to be invoked when the message item is long-clicked.
73+
* @param onLeadingClick A callback function to be invoked when the leading content is clicked.
7374
* @param colors The colors to be used for the message item. See [MessageItemDefaults].
7475
* @param modifier The modifier to be applied to the message item.
7576
* @param hasAttachments A boolean indicating whether the message has attachments.
@@ -92,6 +93,7 @@ internal fun MessageItem(
9293
receivedAt: LocalDateTime,
9394
onClick: () -> Unit,
9495
onLongClick: () -> Unit,
96+
onLeadingClick: () -> Unit,
9597
modifier: Modifier = Modifier,
9698
colors: MessageItemColors = MessageItemDefaults.readMessageItemColors(),
9799
hasAttachments: Boolean = false,
@@ -131,7 +133,7 @@ internal fun MessageItem(
131133
.padding(contentPadding)
132134
.height(intrinsicSize = IntrinsicSize.Min),
133135
) {
134-
LeadingElements(selected, onClick, leading)
136+
LeadingElements(selected, onLeadingClick, leading)
135137
Spacer(modifier = Modifier.width(MainTheme.spacings.default))
136138
Column(
137139
modifier = Modifier
@@ -183,7 +185,7 @@ private fun PreviewText(
183185
private fun LeadingElements(
184186
selected: Boolean,
185187
onClick: () -> Unit,
186-
trailing: @Composable (() -> Unit),
188+
leading: @Composable (() -> Unit),
187189
modifier: Modifier = Modifier,
188190
) {
189191
AnimatedContent(
@@ -193,7 +195,7 @@ private fun LeadingElements(
193195
if (selected) {
194196
SelectedIcon(onClick = onClick)
195197
} else {
196-
trailing()
198+
leading()
197199
}
198200
}
199201
}

0 commit comments

Comments
 (0)