Move preview cases to UserStatusStateProvider, use @PreviewParameter in view
This commit is contained in:
+14
@@ -7,7 +7,21 @@
|
||||
|
||||
package io.element.android.features.preferences.impl.userstatus
|
||||
|
||||
import androidx.compose.foundation.text.input.TextFieldState
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.libraries.matrix.api.user.DisplayedStatus
|
||||
import io.element.android.libraries.matrix.api.user.UserStatus
|
||||
|
||||
internal class UserStatusStateProvider : PreviewParameterProvider<UserStatusState> {
|
||||
override val values get() = sequenceOf(
|
||||
aUserStatusState(),
|
||||
aUserStatusState(displayedStatus = DisplayedStatus.UserSet(UserStatus("🌴", "Away"))),
|
||||
aUserStatusState(displayedStatus = DisplayedStatus.InCall(callJoinedTs = 0L)),
|
||||
aUserStatusState(pickerState = UserStatusPickerState.ShowingPicker),
|
||||
aUserStatusState(pickerState = UserStatusPickerState.CustomInput(emoji = "😀", textFieldState = TextFieldState())),
|
||||
aUserStatusState(pickerState = UserStatusPickerState.CustomInput(emoji = "🚀", textFieldState = TextFieldState("Working on something"))),
|
||||
)
|
||||
}
|
||||
|
||||
fun aUserStatusState(
|
||||
displayedStatus: DisplayedStatus? = null,
|
||||
|
||||
+3
-32
@@ -37,6 +37,7 @@ import io.element.android.compound.theme.ElementTheme
|
||||
import io.element.android.compound.tokens.generated.CompoundIcons
|
||||
import io.element.android.features.preferences.impl.R
|
||||
import io.element.android.libraries.designsystem.components.list.ListItemContent
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
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
|
||||
@@ -239,36 +240,6 @@ private fun CustomStatusInputRow(
|
||||
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun UserStatusRowEmptyPreview() = ElementPreview {
|
||||
UserStatusRow(
|
||||
state = UserStatusState(
|
||||
displayedStatus = null,
|
||||
pickerState = UserStatusPickerState.Hidden,
|
||||
eventSink = {},
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun UserStatusRowSetPreview() = ElementPreview {
|
||||
UserStatusRow(
|
||||
state = UserStatusState(
|
||||
displayedStatus = DisplayedStatus.UserSet(UserStatus("🌴", "Away")),
|
||||
pickerState = UserStatusPickerState.Hidden,
|
||||
eventSink = {},
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun UserStatusRowCustomInputPreview() = ElementPreview {
|
||||
UserStatusRow(
|
||||
state = UserStatusState(
|
||||
displayedStatus = null,
|
||||
pickerState = UserStatusPickerState.CustomInput(emoji = "😀", textFieldState = TextFieldState()),
|
||||
eventSink = {},
|
||||
)
|
||||
)
|
||||
internal fun UserStatusRowPreview(@PreviewParameter(UserStatusStateProvider::class) state: UserStatusState) = ElementPreview {
|
||||
UserStatusRow(state = state)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user