mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 16:10:00 +00:00
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
|
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.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(
|
fun aUserStatusState(
|
||||||
displayedStatus: DisplayedStatus? = null,
|
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.compound.tokens.generated.CompoundIcons
|
||||||
import io.element.android.features.preferences.impl.R
|
import io.element.android.features.preferences.impl.R
|
||||||
import io.element.android.libraries.designsystem.components.list.ListItemContent
|
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.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
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.Icon
|
||||||
@@ -239,36 +240,6 @@ private fun CustomStatusInputRow(
|
|||||||
|
|
||||||
@PreviewsDayNight
|
@PreviewsDayNight
|
||||||
@Composable
|
@Composable
|
||||||
internal fun UserStatusRowEmptyPreview() = ElementPreview {
|
internal fun UserStatusRowPreview(@PreviewParameter(UserStatusStateProvider::class) state: UserStatusState) = ElementPreview {
|
||||||
UserStatusRow(
|
UserStatusRow(state = state)
|
||||||
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 = {},
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user