Create value class for transactionId. There is no validation on the format, but validation is a bonus for userId, roomId, etc.
The main advantage of using value classes instead of Strings everywhere is to detect errors at compilation time.
This commit is contained in:
parent
1e45235c64
commit
6e2f645514
14 changed files with 59 additions and 22 deletions
|
|
@ -18,6 +18,7 @@ package io.element.android.libraries.textcomposer
|
|||
|
||||
import android.os.Parcelable
|
||||
import io.element.android.libraries.matrix.api.core.EventId
|
||||
import io.element.android.libraries.matrix.api.core.TransactionId
|
||||
import io.element.android.libraries.matrix.ui.components.AttachmentThumbnailInfo
|
||||
import kotlinx.parcelize.Parcelize
|
||||
|
||||
|
|
@ -29,7 +30,7 @@ sealed interface MessageComposerMode : Parcelable {
|
|||
MessageComposerMode
|
||||
|
||||
@Parcelize
|
||||
data class Edit(override val eventId: EventId?, override val defaultContent: CharSequence, val transactionId: String?) :
|
||||
data class Edit(override val eventId: EventId?, override val defaultContent: CharSequence, val transactionId: TransactionId?) :
|
||||
Special(eventId, defaultContent)
|
||||
|
||||
@Parcelize
|
||||
|
|
|
|||
|
|
@ -77,6 +77,7 @@ import io.element.android.libraries.designsystem.theme.components.Icon
|
|||
import io.element.android.libraries.designsystem.theme.components.Surface
|
||||
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.media.MediaSource
|
||||
import io.element.android.libraries.matrix.ui.components.AttachmentThumbnail
|
||||
import io.element.android.libraries.matrix.ui.components.AttachmentThumbnailInfo
|
||||
|
|
@ -449,7 +450,7 @@ fun TextComposerEditPreview() = ElementPreview {
|
|||
TextComposer(
|
||||
onSendMessage = {},
|
||||
onComposerTextChange = {},
|
||||
composerMode = MessageComposerMode.Edit(EventId("$1234"), "Some text", "1234"),
|
||||
composerMode = MessageComposerMode.Edit(EventId("$1234"), "Some text", TransactionId("1234")),
|
||||
onResetComposerMode = {},
|
||||
composerCanSendMessage = true,
|
||||
composerText = "A message",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue