Thread decoration: add "Reply in thread" context

This commit is contained in:
ganfra 2023-09-13 16:00:44 +02:00
parent 27ecec763b
commit b36ea5cedf
9 changed files with 38 additions and 13 deletions

View file

@ -41,6 +41,7 @@ sealed interface MessageComposerMode : Parcelable {
class Reply(
val senderName: String,
val attachmentThumbnailInfo: AttachmentThumbnailInfo?,
val isThreaded: Boolean,
override val eventId: EventId,
override val defaultContent: String
) : Special(eventId, defaultContent)
@ -60,5 +61,5 @@ sealed interface MessageComposerMode : Parcelable {
get() = this is Reply
val inThread: Boolean
get() = false // TODO
get() = this is Reply && isThreaded
}

View file

@ -183,9 +183,13 @@ fun TextComposer(
if (composerMode is MessageComposerMode.Special) {
ComposerModeView(composerMode = composerMode, onResetComposerMode = onResetComposerMode)
}
TextInput(
state = state,
placeholder = if (composerMode.inThread) {
stringResource(id = CommonStrings.action_reply_in_thread)
} else {
stringResource(id = CommonStrings.rich_text_editor_composer_placeholder)
},
roundedCorners = roundedCorners,
bgColor = bgColor,
onError = onError,
@ -237,6 +241,7 @@ fun TextComposer(
@Composable
private fun TextInput(
state: RichTextEditorState,
placeholder: String,
roundedCorners: RoundedCornerShape,
bgColor: Color,
modifier: Modifier = Modifier,
@ -262,7 +267,7 @@ private fun TextInput(
// Placeholder
if (state.messageHtml.isEmpty()) {
Text(
stringResource(CommonStrings.common_message),
placeholder,
style = defaultTypography.copy(
color = ElementTheme.colors.textDisabled,
),
@ -686,6 +691,7 @@ internal fun TextComposerReplyPreview() = ElementPreview {
canSendMessage = false,
onSendMessage = {},
composerMode = MessageComposerMode.Reply(
isThreaded = false,
senderName = "Alice",
eventId = EventId("$1234"),
attachmentThumbnailInfo = null,
@ -701,6 +707,7 @@ internal fun TextComposerReplyPreview() = ElementPreview {
canSendMessage = true,
onSendMessage = {},
composerMode = MessageComposerMode.Reply(
isThreaded = true,
senderName = "Alice",
eventId = EventId("$1234"),
attachmentThumbnailInfo = AttachmentThumbnailInfo(
@ -719,6 +726,7 @@ internal fun TextComposerReplyPreview() = ElementPreview {
canSendMessage = true,
onSendMessage = {},
composerMode = MessageComposerMode.Reply(
isThreaded = false,
senderName = "Alice",
eventId = EventId("$1234"),
attachmentThumbnailInfo = AttachmentThumbnailInfo(
@ -737,6 +745,7 @@ internal fun TextComposerReplyPreview() = ElementPreview {
canSendMessage = true,
onSendMessage = {},
composerMode = MessageComposerMode.Reply(
isThreaded = false,
senderName = "Alice",
eventId = EventId("$1234"),
attachmentThumbnailInfo = AttachmentThumbnailInfo(
@ -755,6 +764,7 @@ internal fun TextComposerReplyPreview() = ElementPreview {
canSendMessage = true,
onSendMessage = {},
composerMode = MessageComposerMode.Reply(
isThreaded = false,
senderName = "Alice",
eventId = EventId("$1234"),
attachmentThumbnailInfo = AttachmentThumbnailInfo(