diff --git a/features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesNode.kt b/features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesNode.kt index 342fba632f..26b1af6bbb 100644 --- a/features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesNode.kt +++ b/features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesNode.kt @@ -37,16 +37,7 @@ class ChangeRolesNode( ) : NodeInputs private val inputs: Inputs = inputs() - - private val presenter = presenterFactory.run { - val role = when (inputs.listType) { - ChangeRoomMemberRolesListType.Admins -> RoomMember.Role.Admin - ChangeRoomMemberRolesListType.Moderators -> RoomMember.Role.Moderator - ChangeRoomMemberRolesListType.SelectNewOwnersWhenLeaving -> RoomMember.Role.Owner(isCreator = false) - } - create(role) - } - + private val presenter = presenterFactory.create(inputs.listType.toRoomMemberRole()) private val stateFlow = launchMolecule { presenter.present() } suspend fun waitForRoleChanged() { @@ -63,3 +54,9 @@ class ChangeRolesNode( ) } } + +private fun ChangeRoomMemberRolesListType.toRoomMemberRole() = when (this) { + ChangeRoomMemberRolesListType.Admins -> RoomMember.Role.Admin + ChangeRoomMemberRolesListType.Moderators -> RoomMember.Role.Moderator + ChangeRoomMemberRolesListType.SelectNewOwnersWhenLeaving -> RoomMember.Role.Owner(isCreator = false) +}