Avoid using copy in RoomDetailsEditStateProvider
This commit is contained in:
parent
7353381356
commit
f4f22b1d2f
1 changed files with 35 additions and 20 deletions
|
|
@ -20,33 +20,48 @@ import android.net.Uri
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||||
import io.element.android.libraries.architecture.AsyncAction
|
import io.element.android.libraries.architecture.AsyncAction
|
||||||
import io.element.android.libraries.matrix.api.core.RoomId
|
import io.element.android.libraries.matrix.api.core.RoomId
|
||||||
|
import io.element.android.libraries.matrix.ui.media.AvatarAction
|
||||||
|
import io.element.android.libraries.permissions.api.PermissionsState
|
||||||
import io.element.android.libraries.permissions.api.aPermissionsState
|
import io.element.android.libraries.permissions.api.aPermissionsState
|
||||||
import kotlinx.collections.immutable.persistentListOf
|
import kotlinx.collections.immutable.toImmutableList
|
||||||
|
|
||||||
open class RoomDetailsEditStateProvider : PreviewParameterProvider<RoomDetailsEditState> {
|
open class RoomDetailsEditStateProvider : PreviewParameterProvider<RoomDetailsEditState> {
|
||||||
override val values: Sequence<RoomDetailsEditState>
|
override val values: Sequence<RoomDetailsEditState>
|
||||||
get() = sequenceOf(
|
get() = sequenceOf(
|
||||||
aRoomDetailsEditState(),
|
aRoomDetailsEditState(),
|
||||||
aRoomDetailsEditState().copy(roomTopic = ""),
|
aRoomDetailsEditState(roomTopic = ""),
|
||||||
aRoomDetailsEditState().copy(roomAvatarUrl = Uri.parse("example://uri")),
|
aRoomDetailsEditState(roomAvatarUrl = Uri.parse("example://uri")),
|
||||||
aRoomDetailsEditState().copy(canChangeName = true, canChangeTopic = false, canChangeAvatar = true, saveButtonEnabled = false),
|
aRoomDetailsEditState(canChangeName = true, canChangeTopic = false, canChangeAvatar = true, saveButtonEnabled = false),
|
||||||
aRoomDetailsEditState().copy(canChangeName = false, canChangeTopic = true, canChangeAvatar = false, saveButtonEnabled = false),
|
aRoomDetailsEditState(canChangeName = false, canChangeTopic = true, canChangeAvatar = false, saveButtonEnabled = false),
|
||||||
aRoomDetailsEditState().copy(saveAction = AsyncAction.Loading),
|
aRoomDetailsEditState(saveAction = AsyncAction.Loading),
|
||||||
aRoomDetailsEditState().copy(saveAction = AsyncAction.Failure(Throwable("Whelp")))
|
aRoomDetailsEditState(saveAction = AsyncAction.Failure(Throwable("Whelp")))
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun aRoomDetailsEditState() = RoomDetailsEditState(
|
private fun aRoomDetailsEditState(
|
||||||
roomId = RoomId("!aRoomId:aDomain"),
|
roomId: RoomId = RoomId("!aRoomId:aDomain"),
|
||||||
roomName = "Marketing",
|
roomName: String = "Marketing",
|
||||||
canChangeName = true,
|
canChangeName: Boolean = true,
|
||||||
roomTopic = "a room topic that is quite long so should wrap onto multiple lines",
|
roomTopic: String = "a room topic that is quite long so should wrap onto multiple lines",
|
||||||
canChangeTopic = true,
|
canChangeTopic: Boolean = true,
|
||||||
roomAvatarUrl = null,
|
roomAvatarUrl: Uri? = null,
|
||||||
canChangeAvatar = true,
|
canChangeAvatar: Boolean = true,
|
||||||
avatarActions = persistentListOf(),
|
avatarActions: List<AvatarAction> = emptyList(),
|
||||||
saveButtonEnabled = true,
|
saveButtonEnabled: Boolean = true,
|
||||||
saveAction = AsyncAction.Uninitialized,
|
saveAction: AsyncAction<Unit> = AsyncAction.Uninitialized,
|
||||||
cameraPermissionState = aPermissionsState(showDialog = false),
|
cameraPermissionState: PermissionsState = aPermissionsState(showDialog = false),
|
||||||
eventSink = {}
|
eventSink: (RoomDetailsEditEvents) -> Unit = {},
|
||||||
|
) = RoomDetailsEditState(
|
||||||
|
roomId = roomId,
|
||||||
|
roomName = roomName,
|
||||||
|
canChangeName = canChangeName,
|
||||||
|
roomTopic = roomTopic,
|
||||||
|
canChangeTopic = canChangeTopic,
|
||||||
|
roomAvatarUrl = roomAvatarUrl,
|
||||||
|
canChangeAvatar = canChangeAvatar,
|
||||||
|
avatarActions = avatarActions.toImmutableList(),
|
||||||
|
saveButtonEnabled = saveButtonEnabled,
|
||||||
|
saveAction = saveAction,
|
||||||
|
cameraPermissionState = cameraPermissionState,
|
||||||
|
eventSink = eventSink,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue