design(text field) : allow setting validity (instead of just isError bool)

This commit is contained in:
ganfra 2025-02-20 21:49:50 +01:00
parent f1c5fa53e8
commit f6b4ee945b
6 changed files with 59 additions and 31 deletions

View file

@ -15,6 +15,7 @@ import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.designsystem.theme.components.TextField
import io.element.android.libraries.designsystem.theme.components.TextFieldValidity
import io.element.android.libraries.testtags.TestTags
import io.element.android.libraries.testtags.testTag
import io.element.android.libraries.ui.strings.CommonStrings
@ -56,7 +57,10 @@ fun RoomAddressField(
}
else -> supportingText
},
isError = addressValidity.isError(),
validity = when (addressValidity) {
RoomAddressValidity.InvalidSymbols, RoomAddressValidity.NotAvailable -> TextFieldValidity.Invalid
else -> null
},
onValueChange = onAddressChange,
singleLine = true,
)

View file

@ -8,6 +8,7 @@
package io.element.android.libraries.matrix.ui.room.address
import androidx.compose.runtime.Immutable
import io.element.android.libraries.designsystem.theme.components.TextFieldValidity
/**
* Represents the validity state of a room address.
@ -19,8 +20,4 @@ sealed interface RoomAddressValidity {
data object InvalidSymbols : RoomAddressValidity
data object NotAvailable : RoomAddressValidity
data object Valid : RoomAddressValidity
fun isError(): Boolean {
return this is InvalidSymbols || this is NotAvailable
}
}