fun MessageItemFactory(prevMessage: UikitBaseMessage?, message: UikitBaseMessage, nextMessage: UikitBaseMessage?, modifier: Modifier = Modifier, contentAlignment: Alignment = when (message) {
is UikitTimelineMessage, is UikitAdminMessage -> {
Alignment.Center
}
else -> {
if (message.isMine) {
Alignment.CenterEnd
} else {
Alignment.CenterStart
}
}
}, messageGroupingPosition: MessageGroupingPosition = message.messageGroupingPosition(prevMessage, nextMessage), onMessageClick: (UikitBaseMessage) -> Unit = {}, onMessageLongClick: (UikitBaseMessage) -> Unit = {}, onEmojiReactionClick: (UikitBaseMessage, String, Boolean) -> Unit = { _, _, _ -> }, onEmojiReactionLongClick: (UikitBaseMessage, UiKitReaction) -> Unit = { _, _ -> }, onEmojiReactionMoreButtonClick: (UikitBaseMessage) -> Unit = { }, myTextMessageItem: @Composable (message: UikitUserMessage) -> Unit = {
MyTextMessageItem(
message = it,
onMessageClick = onMessageClick,
onMessageLongClick = onMessageLongClick,
onEmojiReactionClick = onEmojiReactionClick,
onEmojiReactionLongClick = onEmojiReactionLongClick,
onEmojiReactionMoreButtonClick = onEmojiReactionMoreButtonClick,
messageGroupingPosition = messageGroupingPosition
)
}, myFileMessageItem: @Composable (message: UikitFileMessage) -> Unit = {
MyFileMessageItem(
message = it,
onMessageClick = onMessageClick,
onMessageLongClick = onMessageLongClick,
onEmojiReactionClick = onEmojiReactionClick,
onEmojiReactionLongClick = onEmojiReactionLongClick,
onEmojiReactionMoreButtonClick = onEmojiReactionMoreButtonClick,
messageGroupingPosition = messageGroupingPosition
)
}, myMediaMessageItem: @Composable (message: UikitFileMessage) -> Unit = {
MyMediaMessageItem(
message = it,
onMessageClick = onMessageClick,
onMessageLongClick = onMessageLongClick,
onEmojiReactionClick = onEmojiReactionClick,
onEmojiReactionLongClick = onEmojiReactionLongClick,
onEmojiReactionMoreButtonClick = onEmojiReactionMoreButtonClick,
messageGroupingPosition = messageGroupingPosition
)
}, myUnknownMessageItem: @Composable (message: UikitBaseMessage) -> Unit = {
MyUnknownMessageItem(
message = it,
onMessageClick = onMessageClick,
onMessageLongClick = onMessageLongClick,
messageGroupingPosition = messageGroupingPosition
)
}, otherTextMessageItem: @Composable (message: UikitUserMessage) -> Unit = {
OtherTextMessageItem(
message = it,
onMessageClick = onMessageClick,
onMessageLongClick = onMessageLongClick,
onEmojiReactionClick = onEmojiReactionClick,
onEmojiReactionLongClick = onEmojiReactionLongClick,
onEmojiReactionMoreButtonClick = onEmojiReactionMoreButtonClick,
messageGroupingPosition = messageGroupingPosition
)
}, otherFileMessageItem: @Composable (message: UikitFileMessage) -> Unit = {
OtherFileMessageItem(
message = it,
onMessageClick = onMessageClick,
onMessageLongClick = onMessageLongClick,
onEmojiReactionClick = onEmojiReactionClick,
onEmojiReactionLongClick = onEmojiReactionLongClick,
onEmojiReactionMoreButtonClick = onEmojiReactionMoreButtonClick,
messageGroupingPosition = messageGroupingPosition
)
}, otherMediaMessageItem: @Composable (message: UikitFileMessage) -> Unit = {
OtherMediaMessageItem(
message = it,
onMessageClick = onMessageClick,
onMessageLongClick = onMessageLongClick,
onEmojiReactionClick = onEmojiReactionClick,
onEmojiReactionLongClick = onEmojiReactionLongClick,
onEmojiReactionMoreButtonClick = onEmojiReactionMoreButtonClick,
messageGroupingPosition = messageGroupingPosition
)
}, otherUnknownMessageItem: @Composable (message: UikitBaseMessage) -> Unit = {
OtherUnknownMessageItem(
message = it,
onMessageClick = onMessageClick,
onMessageLongClick = onMessageLongClick,
messageGroupingPosition = messageGroupingPosition
)
}, adminMessageItem: @Composable (message: UikitAdminMessage) -> Unit = { AdminMessageItem(message = it) }, timelineMessageItem: @Composable (message: UikitTimelineMessage) -> Unit = { TimelineMessageItem(message = it) }) A factory Composable to create a message item based on the message type.
Since
1.0.0
Parameters
The modifier to be applied to the view.
The position of the message in the message group.
The handler for when the message is clicked.
The handler for when the message is long clicked.
The handler for when the emoji reaction is clicked.
The handler for when the emoji reaction is long clicked.
onEmojiReactionMoreButtonClick
The handler for when the emoji reaction more button is clicked.
See also