Merge pull request #4184 from element-hq/feature/bma/removeFirstIfSingle
Replace our firstIfSingle extension with singleOrNull from the Kotlin library
This commit is contained in:
commit
7d73758cda
3 changed files with 3 additions and 20 deletions
|
|
@ -18,7 +18,6 @@ import io.element.android.features.knockrequests.impl.data.KnockRequestPresentab
|
|||
import io.element.android.features.knockrequests.impl.data.KnockRequestsService
|
||||
import io.element.android.libraries.architecture.Presenter
|
||||
import io.element.android.libraries.core.coroutine.mapState
|
||||
import io.element.android.libraries.core.extensions.firstIfSingle
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.delay
|
||||
|
|
@ -79,7 +78,7 @@ class KnockRequestsBannerPresenter @Inject constructor(
|
|||
knockRequests: List<KnockRequestPresentable>,
|
||||
displayAcceptError: MutableState<Boolean>,
|
||||
) = launch {
|
||||
val knockRequest = knockRequests.firstIfSingle()
|
||||
val knockRequest = knockRequests.singleOrNull()
|
||||
if (knockRequest != null) {
|
||||
knockRequestsService.acceptKnockRequest(knockRequest, optimistic = true)
|
||||
.onFailure {
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@ import androidx.compose.ui.res.pluralStringResource
|
|||
import androidx.compose.ui.res.stringResource
|
||||
import io.element.android.features.knockrequests.impl.R
|
||||
import io.element.android.features.knockrequests.impl.data.KnockRequestPresentable
|
||||
import io.element.android.libraries.core.extensions.firstIfSingle
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
|
||||
data class KnockRequestsBannerState(
|
||||
|
|
@ -22,8 +21,8 @@ data class KnockRequestsBannerState(
|
|||
val canAccept: Boolean,
|
||||
val eventSink: (KnockRequestsBannerEvents) -> Unit,
|
||||
) {
|
||||
val subtitle = knockRequests.firstIfSingle()?.userId?.value
|
||||
val reason = knockRequests.firstIfSingle()?.reason
|
||||
val subtitle = knockRequests.singleOrNull()?.userId?.value
|
||||
val reason = knockRequests.singleOrNull()?.reason
|
||||
|
||||
@Composable
|
||||
fun formattedTitle(): String {
|
||||
|
|
|
|||
|
|
@ -1,15 +0,0 @@
|
|||
/*
|
||||
* Copyright 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.core.extensions
|
||||
|
||||
/**
|
||||
* Returns the first element if the list contains exactly one element, otherwise returns null.
|
||||
*/
|
||||
inline fun <reified T> List<T>.firstIfSingle(): T? {
|
||||
return if (size == 1) first() else null
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue