Fix API Break: introduce EventOrTransactionId

This commit is contained in:
Benoit Marty 2024-10-18 08:49:02 +02:00
parent 12f60dcaaa
commit 1f8f1c998f
25 changed files with 175 additions and 147 deletions

View file

@ -42,7 +42,8 @@ import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.components.CircularProgressIndicator
import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.TransactionId
import io.element.android.libraries.matrix.api.timeline.item.event.EventOrTransactionId
import io.element.android.libraries.matrix.api.timeline.item.event.toEventOrTransactionId
import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetails
import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetailsProvider
import io.element.android.libraries.testtags.TestTags
@ -719,12 +720,10 @@ fun aRichTextEditorState(
)
fun aMessageComposerModeEdit(
eventId: EventId? = EventId("$1234"),
transactionId: TransactionId? = TransactionId("1234"),
eventOrTransactionId: EventOrTransactionId = EventId("$1234").toEventOrTransactionId(),
content: String = "Some text",
) = MessageComposerMode.Edit(
eventId = eventId,
transactionId = transactionId,
eventOrTransactionId = eventOrTransactionId,
content = content
)

View file

@ -26,6 +26,8 @@ import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.components.Icon
import io.element.android.libraries.designsystem.theme.components.IconButton
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.timeline.item.event.toEventOrTransactionId
import io.element.android.libraries.textcomposer.model.MessageComposerMode
import io.element.android.libraries.ui.strings.CommonStrings
@ -77,7 +79,7 @@ internal fun SendButton(
@Composable
internal fun SendButtonPreview() = ElementPreview {
val normalMode = MessageComposerMode.Normal
val editMode = MessageComposerMode.Edit(null, null, "")
val editMode = MessageComposerMode.Edit(EventId("\$id").toEventOrTransactionId(), "")
Row {
SendButton(canSendMessage = true, onClick = {}, composerMode = normalMode)
SendButton(canSendMessage = false, onClick = {}, composerMode = normalMode)

View file

@ -9,7 +9,7 @@ package io.element.android.libraries.textcomposer.model
import androidx.compose.runtime.Immutable
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.TransactionId
import io.element.android.libraries.matrix.api.timeline.item.event.EventOrTransactionId
import io.element.android.libraries.matrix.api.timeline.item.event.MessageContent
import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetails
import io.element.android.libraries.matrix.ui.messages.reply.eventId
@ -21,8 +21,7 @@ sealed interface MessageComposerMode {
sealed interface Special : MessageComposerMode
data class Edit(
val eventId: EventId?,
val transactionId: TransactionId?,
val eventOrTransactionId: EventOrTransactionId,
val content: String
) : Special
@ -36,7 +35,7 @@ sealed interface MessageComposerMode {
val relatedEventId: EventId?
get() = when (this) {
is Normal -> null
is Edit -> eventId
is Edit -> eventOrTransactionId.eventId
is Reply -> eventId
}