Skip to content

Commit

Permalink
fix: restore quoted message from draft [WPB-11563] (#3503)
Browse files Browse the repository at this point in the history
Co-authored-by: Yamil Medina <[email protected]>
  • Loading branch information
Garzas and yamilmedina authored Oct 16, 2024
1 parent 9984c00 commit 299d53a
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,13 @@ fun ConversationScreen(
)
}
}
// set message composer input to reply mode when quotedMessage is not null from MessageDraft
LaunchedEffect(messageDraftViewModel.state.value.quotedMessageId) {
val compositionState = messageDraftViewModel.state.value
if (compositionState.quotedMessage != null) {
messageComposerStateHolder.messageCompositionHolder.updateQuote(compositionState.quotedMessage)
}
}

conversationMigrationViewModel.migratedConversationId?.let { migratedConversationId ->
navigator.navigate(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,28 +57,22 @@ class MessageDraftViewModel @Inject constructor(
val draftResult = getMessageDraft(conversationId)

draftResult?.let { draft ->
val quotedData = draftResult.quotedMessageId?.let { quotedMessageId ->
when (val quotedData = getQuotedMessage(conversationId, quotedMessageId)) {
is UIQuotedMessage.UIQuotedData -> quotedData
UIQuotedMessage.UnavailableData -> null
}
}
state.update { messageComposition ->
messageComposition.copy(
draftText = draft.text,
selectedMentions = draft.selectedMentionList.mapNotNull { it.toUiMention(draft.text) },
editMessageId = draft.editMessageId
editMessageId = draft.editMessageId,
quotedMessage = quotedData,
quotedMessageId = quotedData?.messageId
)
}
}
draftResult?.quotedMessageId?.let { quotedMessageId ->
when (val quotedData = getQuotedMessage(conversationId, quotedMessageId)) {
is UIQuotedMessage.UIQuotedData -> {
state.update {
it.copy(
quotedMessage = quotedData,
quotedMessageId = quotedMessageId
)
}
}

UIQuotedMessage.UnavailableData -> {}
}
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,17 @@ class MessageCompositionHolder(
const val RICH_TEXT_MARKDOWN_MULTIPLIER = 2
}

fun updateQuote(quotedMessage: UIQuotedMessage.UIQuotedData) {
messageComposition.update {
it.copy(
quotedMessage = quotedMessage,
quotedMessageId = quotedMessage.messageId,
editMessageId = null
)
}
onSaveDraft(messageComposition.value.toDraft(messageTextState.text.toString()))
}

fun setReply(message: UIMessage.Regular) {
val senderId = message.header.userId ?: return

Expand Down

0 comments on commit 299d53a

Please sign in to comment.