Draft : refactor a bit ComposerMode and formatting management so we don't mess up with draft restoration.

This commit is contained in:
ganfra 2024-06-25 11:35:22 +02:00
parent 2d324a7f4b
commit 321c2dca30
7 changed files with 87 additions and 72 deletions

View file

@ -601,7 +601,7 @@ internal fun TextComposerEditPreview() = ElementPreview {
ATextComposer(
TextEditorState.Rich(aRichTextEditorState(initialText = "A message", initialFocus = true)),
voiceMessageState = VoiceMessageState.Idle,
composerMode = MessageComposerMode.Edit(EventId("$1234"), "Some text", TransactionId("1234")),
composerMode = MessageComposerMode.Edit(EventId("$1234"), TransactionId("1234"), "Some text"),
enableVoiceMessages = true,
currentUserId = UserId("@alice:localhost")
)
@ -615,7 +615,7 @@ internal fun MarkdownTextComposerEditPreview() = ElementPreview {
ATextComposer(
TextEditorState.Markdown(aMarkdownTextEditorState(initialText = "A message", initialFocus = true)),
voiceMessageState = VoiceMessageState.Idle,
composerMode = MessageComposerMode.Edit(EventId("$1234"), "Some text", TransactionId("1234")),
composerMode = MessageComposerMode.Edit(EventId("$1234"), TransactionId("1234"), "Some text"),
enableVoiceMessages = true,
currentUserId = UserId("@alice:localhost")
)

View file

@ -86,7 +86,7 @@ internal fun SendButton(
@Composable
internal fun SendButtonPreview() = ElementPreview {
val normalMode = MessageComposerMode.Normal
val editMode = MessageComposerMode.Edit(null, "", null)
val editMode = MessageComposerMode.Edit(null, null, "")
Row {
SendButton(canSendMessage = true, onClick = {}, composerMode = normalMode)
SendButton(canSendMessage = false, onClick = {}, composerMode = normalMode)

View file

@ -29,9 +29,11 @@ sealed interface MessageComposerMode {
sealed interface Special : MessageComposerMode
data class Edit(val eventId: EventId?, val content: String, val transactionId: TransactionId?) : Special
class Quote(val eventId: EventId, val content: String) : Special
data class Edit(
val eventId: EventId?,
val transactionId: TransactionId?,
val content: String
) : Special
class Reply(
val replyToDetails: InReplyToDetails
@ -43,7 +45,6 @@ sealed interface MessageComposerMode {
get() = when (this) {
is Normal -> null
is Edit -> eventId
is Quote -> eventId
is Reply -> eventId
}