Merge pull request #5166 from element-hq/feature/fga/create_room_flow_rework
Create room flow rework
This commit is contained in:
commit
de16268674
340 changed files with 2539 additions and 1784 deletions
|
|
@ -160,3 +160,17 @@ suspend inline fun <T> runUpdatingState(
|
|||
}
|
||||
)
|
||||
}
|
||||
|
||||
inline fun <T, R> AsyncData<T>.map(
|
||||
transform: (T?) -> R,
|
||||
): AsyncData<R> {
|
||||
return when (this) {
|
||||
is AsyncData.Failure -> AsyncData.Failure(
|
||||
error = error,
|
||||
prevData = transform(prevData)
|
||||
)
|
||||
is AsyncData.Loading -> AsyncData.Loading(transform(prevData))
|
||||
is AsyncData.Success -> AsyncData.Success(transform(data))
|
||||
AsyncData.Uninitialized -> AsyncData.Uninitialized
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,15 +0,0 @@
|
|||
/*
|
||||
* Copyright 2023, 2024 New Vector Ltd.
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.libraries.designsystem.utils
|
||||
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
|
||||
open class StringProvider(val strings: List<String>) : PreviewParameterProvider<String> {
|
||||
override val values: Sequence<String>
|
||||
get() = strings.asSequence()
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
/*
|
||||
* Copyright 2025 New Vector Ltd.
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.libraries.matrix.api.room
|
||||
|
||||
import io.element.android.libraries.core.bool.orFalse
|
||||
import kotlinx.coroutines.withContext
|
||||
import kotlin.coroutines.CoroutineContext
|
||||
|
||||
/**
|
||||
* Method to filter members by userId or displayName.
|
||||
* It does filter through the already known members, it doesn't perform additional requests.
|
||||
*/
|
||||
suspend fun BaseRoom.filterMembers(query: String, coroutineContext: CoroutineContext): List<RoomMember> = withContext(coroutineContext) {
|
||||
val roomMembersState = membersStateFlow.value
|
||||
val activeRoomMembers = roomMembersState.roomMembers()
|
||||
?.filter { it.membership.isActive() }
|
||||
.orEmpty()
|
||||
val filteredMembers = if (query.isBlank()) {
|
||||
activeRoomMembers
|
||||
} else {
|
||||
activeRoomMembers.filter { member ->
|
||||
member.userId.value.contains(query, ignoreCase = true) ||
|
||||
member.displayName?.contains(query, ignoreCase = true).orFalse()
|
||||
}
|
||||
}
|
||||
filteredMembers
|
||||
}
|
||||
|
|
@ -88,6 +88,7 @@
|
|||
<string name="action_enable">"Enable"</string>
|
||||
<string name="action_end_poll">"End poll"</string>
|
||||
<string name="action_enter_pin">"Enter PIN"</string>
|
||||
<string name="action_finish">"Finish"</string>
|
||||
<string name="action_forgot_password">"Forgot password?"</string>
|
||||
<string name="action_forward">"Forward"</string>
|
||||
<string name="action_go_back">"Go back"</string>
|
||||
|
|
@ -301,6 +302,7 @@ Reason: %1$s."</string>
|
|||
<string name="common_signing_out">"Signing out"</string>
|
||||
<string name="common_something_went_wrong">"Something went wrong"</string>
|
||||
<string name="common_something_went_wrong_message">"We encountered an issue. Please try again."</string>
|
||||
<string name="common_space">"Space"</string>
|
||||
<plurals name="common_spaces">
|
||||
<item quantity="one">"%1$d Space"</item>
|
||||
<item quantity="other">"%1$d Spaces"</item>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue